def __add_handler_factory(self, svc_ref):
        # type: (ServiceReference) -> None
        """
        Stores a new handler factory

        :param svc_ref: ServiceReference of the new handler factory
        """
        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]
Stores a new handler factory

        :param svc_ref: ServiceReference of the new handler factory