Beispiel #1
0
 def service(self, group, method, context, output_operator):
     adapted_method = self._adapted_methods.get((group, method), None)
     if adapted_method is not None:
         return adapted_method(output_operator, context)
     elif self._adapted_multi_method is not None:
         try:
             return self._adapted_multi_method(group, method,
                                               output_operator, context)
         except face.NoSuchMethodError:
             raise base.NoSuchMethodError(None, None)
     else:
         raise base.NoSuchMethodError(None, None)
Beispiel #2
0
 def service(self, group, method, context, output_operator):
   try:
     return self._delegate.service(group, method, context, output_operator)
   except base.NoSuchMethodError as e:
     if e.code is None and e.details is None:
       raise base.NoSuchMethodError(
           interfaces.StatusCode.UNIMPLEMENTED,
           b'Method "%s" of service "%s" not implemented!' % (method, group))
     else:
       raise
Beispiel #3
0
 def service(self, group, method, context, output_operator):
     with self._condition:
         controller = self._controllers.pop(0)
         if group != self._group or method != self._method:
             controller.fail('%s != %s or %s != %s' %
                             (group, self._group, method, self._method))
             raise base.NoSuchMethodError()
         else:
             operator = _Operator(controller, controller.on_service_advance,
                                  self._pool, output_operator)
             outcome = context.add_termination_callback(
                 controller.service_on_termination)
             if outcome is not None:
                 controller.service_on_termination(outcome)
             return utilities.full_subscription(operator)