�
Ϫ�f�- � �t � d Z ddlmZmZmZ ddlmZ ddlmZ ddl m
Z
ddlmZ ddl
mZ G d� d e� Z ee
e� G d
� d� � Z G d� d
e� Z ee� G d� d� � Z G d� de� Z ee� G d� de� � Z G d� de� Z ee� G d� d� � Zdd�Zdd�Zg d�Zy)aa
Service architecture for Twisted.
Services are arranged in a hierarchy. At the leafs of the hierarchy,
the services which actually interact with the outside world are started.
Services can be named or anonymous -- usually, they will be named if
there is need to access them through the hierarchy (from a parent or
a sibling).
Maintainer: Moshe Zadka
� )� Attribute� Interface�implementer)�defer)�sob)�IPlugin)�
components)�namedAnyc �F � e Zd ZdZ ed� Z ed� Z ed� Zd� Zy)�
IServiceMakerz�
An object which can be used to construct services in a flexible
way.
This interface should most often be implemented along with
L{twisted.plugin.IPlugin}, and will most often be used by the
'twistd' command.
zA short string naming this Twisted plugin, for example 'web' or 'pencil'. This name will be used as the subcommand of 'twistd'.zLA brief summary of the features provided by this Twisted application plugin.zcA C{twisted.python.usage.Options} subclass defining the configuration options for this application.c � � y)a
Create and return an object providing
L{twisted.application.service.IService}.
@param options: A mapping (typically a C{dict} or
L{twisted.python.usage.Options} instance) of configuration
options to desired configuration values.
N� )�optionss �=/usr/lib/python3/dist-packages/twisted/application/service.py�makeServicezIServiceMaker.makeService4 � � � N) �__name__�
__module__�__qualname__�__doc__r �tapname�descriptionr r r r r r r s@ � �� � J��G�
� &��K�
� 6��G�
r r c �6 � e Zd ZdZd� Zed� � Zed� � Zy)�ServiceMakerzO
Utility class to simplify the definition of L{IServiceMaker} plugins.
c �< |