chore: add documentation RI
Code functionality left unchanged, only added docs where missing close: N25B-298
This commit is contained in:
@@ -12,14 +12,31 @@ class State(object):
|
||||
|
||||
This class is used to share state between threads. For example, when the program is quit, that all threads can
|
||||
detect this via the `exit_event` property being set.
|
||||
|
||||
:ivar is_initialized: Flag indicating whether the state setup (exit handlers, QI session) has completed.
|
||||
:type is_initialized: bool
|
||||
|
||||
:ivar exit_event: A thread event used to signal all threads that the program is shutting down.
|
||||
:type exit_event: threading.Event | None
|
||||
|
||||
:ivar sockets: A list of ZeroMQ socket wrappers (`SocketBase`) that need to be closed during deinitialization.
|
||||
:type sockets: List[SocketBase]
|
||||
|
||||
:ivar qi_session: The QI session object used for interaction with the robot/platform services.
|
||||
:type qi_session: None | ssl.SSLSession
|
||||
"""
|
||||
def __init__(self):
|
||||
self.is_initialized = False
|
||||
self.exit_event = None
|
||||
self.sockets = [] # type: List[SocketBase]
|
||||
self.qi_session = None # type: None | ssl.SSLSession
|
||||
self.sockets = []
|
||||
self.qi_session = None
|
||||
|
||||
def initialize(self):
|
||||
"""
|
||||
Sets up the application state. Creates the thread exit event, registers
|
||||
signal handlers (`SIGINT`, `SIGTERM`) for graceful shutdown, and
|
||||
establishes the QI session.
|
||||
"""
|
||||
if self.is_initialized:
|
||||
logging.warn("Already initialized")
|
||||
return
|
||||
@@ -36,6 +53,9 @@ class State(object):
|
||||
self.is_initialized = True
|
||||
|
||||
def deinitialize(self):
|
||||
"""
|
||||
Closes all sockets stored in the `sockets` list.
|
||||
"""
|
||||
if not self.is_initialized: return
|
||||
|
||||
for socket in self.sockets:
|
||||
@@ -44,7 +64,17 @@ class State(object):
|
||||
self.is_initialized = False
|
||||
|
||||
def __getattribute__(self, name):
|
||||
# Enforce that the state is initialized before accessing any property (aside from the basic ones)
|
||||
"""
|
||||
Custom attribute access method that enforces a check: the state must be
|
||||
fully initialized before any non-setup attributes (like `sockets` or `qi_session`)
|
||||
can be accessed.
|
||||
|
||||
:param name: The name of the attribute being accessed.
|
||||
:type name: str
|
||||
|
||||
:return: The value of the requested attribute.
|
||||
:rtype: Any
|
||||
"""
|
||||
if name in (
|
||||
"initialize",
|
||||
"deinitialize",
|
||||
|
||||
Reference in New Issue
Block a user