Source code for wrapyfi.middlewares.yarp

import logging
import atexit

import yarp

from wrapyfi.utils.core_utils import SingletonOptimized
from wrapyfi.connect.wrapper import MiddlewareCommunicator


[docs] class YarpMiddleware(metaclass=SingletonOptimized): """ YARP middleware wrapper. This class is a singleton, so it can be instantiated only once. The ``activate`` method should be called to initialize the middleware. The ``deinit`` method should be called to deinitialize the middleware and destroy all connections. The ``activate`` and ``deinit`` methods are automatically called when the class is instantiated and when the program exits, respectively. """
[docs] @staticmethod def activate(**kwargs): """ Activate the YARP middleware. This method should be called to initialize the middleware. :param kwargs: dict: Keyword arguments to be passed to the YARP initialization function """ YarpMiddleware(**kwargs)
[docs] def __init__(self, *args, **kwargs): """ Initialize the YARP middleware. This method is automatically called when the class is instantiated. """ logging.info("Initialising YARP middleware") yarp.Network.init() atexit.register(MiddlewareCommunicator.close_all_instances) atexit.register(self.deinit)
[docs] @staticmethod def deinit(): """ Deinitialize the YARP middleware. This method is automatically called when the program exits. """ logging.info("Deinitializing YARP middleware") yarp.Network.fini()