def __init__()

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))