Ejemplo n.º 1
0
 def registerService(self, caller_id, service, service_api, caller_api):
     """
     Forked from ROSMasterHandler.
     Register the caller as a provider of the specified service.
     0. If service is `remote-only`, register with ROS Master
     1. If Service is `local-only`, register with current shadow instance.
     2. Otherwise, register with both sides.
     @param caller_id str: ROS caller id
     @type  caller_id: str
     @param service: Fully-qualified name of service
     @type  service: str
     @param service_api: Service URI
     @type  service_api: str
     @param caller_api: XML-RPC URI of caller node
     @type  caller_api: str
     @return: (code, message, ignore)
     @rtype: (int, str, int)
     """
     cfg = swcfg.services.get_config(service)
     if not cfg.is_local_only():
         self._reg_remote_service(caller_id, service, service_api,
                                  caller_api)
     if not cfg.is_remote_only():
         self._reg_local_service(caller_id, service, service_api,
                                 caller_api)
     return ResponseFactory.service_reg(caller_id, service).pack()
Ejemplo n.º 2
0
 def registerService(self, caller_id, service, service_api, caller_api):
     """
     Forked from ROSMasterHandler.
     Register the caller as a provider of the specified service.
     0. If service is `remote-only`, register with ROS Master
     1. If Service is `local-only`, register with current shadow instance.
     2. Otherwise, register with both sides.
     @param caller_id str: ROS caller id
     @type  caller_id: str
     @param service: Fully-qualified name of service
     @type  service: str
     @param service_api: Service URI
     @type  service_api: str
     @param caller_api: XML-RPC URI of caller node
     @type  caller_api: str
     @return: (code, message, ignore)
     @rtype: (int, str, int)
     """
     cfg = swcfg.services.get_config(service)
     if not cfg.is_local_only():
         self._reg_remote_service(caller_id, service, service_api, caller_api)
     if not cfg.is_remote_only():
         self._reg_local_service(caller_id, service, service_api, caller_api)
     return ResponseFactory.service_reg(caller_id, service).pack()
Ejemplo n.º 3
0
 def regCell(self, service, service_uri, daemon_uri):
     with self.record_lock:
         self.records[service].insert(service_uri, daemon_uri)
     return ResponseFactory.service_reg(daemon_uri, service).pack()