code: def __add_handler_factory(self, svc_ref):
          # type: (ServiceReference) -> None
          
          with self.__handlers_lock:
              # Get the handler ID
              handler_id = svc_ref.get_property(handlers_const.PROP_HANDLER_ID)
              if handler_id in self._handlers:
                  # Duplicated ID
                  _logger.warning("Already registered handler ID: %s", handler_id)
              else:
                  # Store the service
                  self._handlers_refs.add(svc_ref)
                  self._handlers[handler_id] = self.__context.get_service(svc_ref)
  
                  # Try to instantiate waiting components
                  succeeded = set()
                  for (
                      name,
                      (context, instance),
                  ) in self.__waiting_handlers.items():
                      if self.__try_instantiate(context, instance):
                          succeeded.add(name)
  
                  # Remove instantiated component from the waiting list
                  for name in succeeded:
                      del self.__waiting_handlers[name]
docs: Stores a new handler factory
  
          :param svc_ref: ServiceReference of the new handler factory