-
Notifications
You must be signed in to change notification settings - Fork 0
/
EnvGlobals.py
110 lines (66 loc) · 2.25 KB
/
EnvGlobals.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
'''
Globals per Env
Many of the items declared here are "managed" - they are thread-safe objects whose operations are locked upon
entry and unlocked upon exit.
'''
from threading import local
from MsgIdMgr import MsgIdMgr
from ConcIdMgr import ConcIdMgr
from Addr2Conc import Addr2Conc
from ThreadPool import ThreadPool
from TcpFactory import TcpFactory
from ConcAddr import ConcAddr
from CorpsMsgHdlrFactory import CorpsMsgHdlrFactory
from EnvRecord import EnvRecord, CorpsEnvRecord
from EnvTable import EnvTable, CorpsEnvTable
from socket import getfqdn, getaddrinfo, AF_INET
from ipaddress import ip_address
from EnvAddrSpace import *
from CorpsStatus import MajorStatus, MinorStatus
EnvStatus = MajorStatus.Nonexistent
def set_EnvStatus(Status):
global EnvStatus
EnvStatus = Status
def my_EnvStatus():
global EnvStatus
return EnvStatus
MyHost = None
def my_Host():
global MyHost
if MyHost == None:
MyHost = getfqdn()
return MyHost
MyIp = None
def my_Ip():
global MyIp
if MyIp == None:
MyIp = ip_address(getaddrinfo(my_Host(), 0, family=AF_INET)[0][4][0])
return MyIp
MyPort = None
def set_MyPort(Port):
global MyPort
MyPort = Port
def my_Port():
global MyPort
return MyPort
NullConcAddr = ConcAddr(-1, -1, -1)
TheThread = local() # private to and global within every Thread
TheThread.TheConcAddr = NullConcAddr # set in Conc main() after assignment of the Conc to a Thread, reset before exit
EnvId = 0 # set during init by Env, read-only thereafter
def set_EnvId(Id):
global EnvId
EnvId = Id
def my_EnvId():
global EnvId
return EnvId
_MsgIdMgr = MsgIdMgr()
_ConcIdMgr = ConcIdMgr()
_Addr2Conc = Addr2Conc()
_ThreadPool = ThreadPool()
_EnvTable = EnvTable(MIN_ENVID, MAX_ENVID)
_ContCorpsEnvTable = CorpsEnvTable(MIN_CONT_CORPS_ENVID, MAX_CONT_CORPS_ENVID)
_ExtCorpsEnvTable = CorpsEnvTable(MIN_EXT_CORPS_ENVID, MAX_EXT_CORPS_ENVID)
TheTcpFactory = TcpFactory(_ThreadPool, _Addr2Conc)
TheCorpsMsgHdlrFactory = CorpsMsgHdlrFactory()
DefaultEnvRecord = EnvRecord(TheCorpsMsgHdlrFactory, TheTcpFactory, my_Ip(), 0)
DefaultCorpsEnvRecord = CorpsEnvRecord("No Tag", TheCorpsMsgHdlrFactory, TheTcpFactory, my_Ip(), 0)