def use_waiting_list(bundle_context): # type: (BundleContext) -> Any """ Utility context to use the iPOPO waiting list safely in a "with" block. It looks after the the iPOPO waiting list service and releases its reference when exiting the context. :param bundle_context: The calling bundle context :return: The iPOPO waiting list service :raise BundleException: Service not found """ # Get the service and its reference ref = bundle_context.get_service_reference(SERVICE_IPOPO_WAITING_LIST) if ref is None: raise BundleException("No iPOPO waiting list service available") try: # Give the service yield bundle_context.get_service(ref) finally: try: # Release it bundle_context.unget_service(ref) except BundleException: # Service might have already been unregistered pass
def use_ipopo(bundle_context): # type: (BundleContext) -> Any """ Utility context to use the iPOPO service safely in a "with" block. It looks after the the iPOPO service and releases its reference when exiting the context. :param bundle_context: The calling bundle context :return: The iPOPO service :raise BundleException: Service not found """ # Get the service and its reference ref_svc = get_ipopo_svc_ref(bundle_context) if ref_svc is None: raise BundleException("No iPOPO service available") try: # Give the service yield ref_svc[1] finally: try: # Release it bundle_context.unget_service(ref_svc[0]) except BundleException: # Service might have already been unregistered pass