MCPcopy Create free account
hub / github.com/FreeOpcUa/python-opcua / InternalServer

Class InternalServer

opcua/server/internal_server.py:40–284  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

38 Closed = 2
39
40class InternalServer(object):
41
42 def __init__(self, shelffile=None, user_manager=None, session_cls=None):
43 self.logger = logging.getLogger(__name__)
44
45 self.server_callback_dispatcher = CallbackDispatcher()
46
47 self.endpoints = []
48 self._channel_id_counter = 5
49 self.disabled_clock = False # for debugging we may want to disable clock that writes too much in log
50 self._local_discovery_service = None # lazy-loading
51
52 self.aspace = AddressSpace()
53 self.attribute_service = AttributeService(self.aspace)
54 self.view_service = ViewService(self.aspace)
55 self.method_service = MethodService(self.aspace)
56 self.node_mgt_service = NodeManagementService(self.aspace)
57
58 self.load_standard_address_space(shelffile)
59
60 self.loop = None
61 self.asyncio_transports = []
62 self.subscription_service = SubscriptionService(self.aspace)
63
64 self.history_manager = HistoryManager(self)
65 self.user_manager = user_manager
66
67 # create a session to use on server side
68 self.session_cls = session_cls or InternalSession
69 self.isession = self.session_cls(self, self.aspace, \
70 self.subscription_service, "Internal", user=UserManager.User.Admin)
71
72 self.server_status_node = Node(self.isession, ua.NodeId(ua.ObjectIds.Server_ServerStatus))
73 self.current_time_node = Node(self.isession, ua.NodeId(ua.ObjectIds.Server_ServerStatus_CurrentTime))
74 self._address_space_fixes()
75 self.setup_nodes()
76
77 @property
78 def thread_loop(self):
79 if self.loop is None:
80 raise Exception("InternalServer stopped: async threadloop is not running.")
81 return self.loop
82
83 @property
84 def local_discovery_service(self):
85 if self._local_discovery_service is None:
86 self._local_discovery_service = LocalDiscoveryService(parent = self)
87 for edp in self.endpoints:
88 srvDesc = LocalDiscoveryService.ServerDescription(edp.Server)
89 self._local_discovery_service.add_server_description(srvDesc)
90 return self._local_discovery_service
91
92 def setup_nodes(self):
93 """
94 Set up some nodes as defined by spec
95 """
96 uries = ["http://opcfoundation.org/UA/"]
97 ns_node = Node(self.isession, ua.NodeId(ua.ObjectIds.Server_NamespaceArray))

Callers 2

__init__Method · 0.90
setUpClassMethod · 0.90

Calls

no outgoing calls

Tested by 1

setUpClassMethod · 0.72