in src/ipc_pubsub/ipc_topic_pubsub.py [0:0]
def __init__(self, message_callback, ipc_subscribe_topics, ipc_timeout=5):
log.info('Initialising AWS Greengrass V2 IPC Topic PubSub Client')
super().__init__()
try:
# PubSub timeout secs.
self.ipc_timeout = ipc_timeout
# PubSub message callback.
self.message_callback = message_callback
# IPC Subscribe Topics.
self.ipc_subscribe_topics = ipc_subscribe_topics
# List of active topics subscribed too.
self.ipc_subscribed_topics = []
# Create the ipc_clients.
self.ipc_subscribe_client = awsiot.greengrasscoreipc.connect()
self.ipc_publish_client = awsiot.greengrasscoreipc.connect()
# Create ThreadPoolExecutor to process PubSub messages.
# Changed in version 3.8: Default max_workers changed to min(32, os.cpu_count() + 4).
self.executor = ThreadPoolExecutor(max_workers=None)
# Init IPC PubSub's.
self.init_topic_subscriber()
self.init_topic_publisher()
except InterruptedError as iErr: # pragma: no cover
log.error('INTERRUPTED_EXCEPTION: IPC Topic Publisher / Subscriber init was interrupted. ERROR MESSAGE: {}'.format(iErr))
except Exception as err: # pragma: no cover
log.error('EXCEPTION: Exception occurred initialising AWS Greengrass IPC Topic PubSub. ERROR MESSAGE: {}'.format(err))