File: //proc/self/root/lib/python3/dist-packages/twisted/spread/__pycache__/flavors.cpython-38.pyc
U
��W[�[ � @ s� d Z ddlmZmZ ddlZddlmZmZ ddlm Z m
Z
ddlmZm
Z
mZmZ ddlmZmZmZmZmZmZmZmZmZ eZeZeZeZd Zd
ZdZ dZ!G d
d� de"�Z#G dd� de�Z$G dd� de�Z%G dd� de%�Z&ee$�G dd� de&��Z'G dd� de&�Z(G dd� de%�Z)G dd� de%�Z*G dd� de*�Z+G dd � d e�Z,G d!d"� d"e,e%�Z-d#d$� Z.ed%e.� d&d'� Z/ed(e/� d)d*� Z0ed+e0� eG d,d-� d-��Z1eG d.d/� d/��Z2dS )0a�
This module represents flavors of remotely accessible objects.
Currently this is only objects accessible through Perspective Broker, but will
hopefully encompass all forms of remote access which can emulate subsets of PB
(such as XMLRPC or SOAP).
Future Plans: Optimization. Exploitation of new-style object model.
Optimizations to this module should not affect external-use semantics at all,
but may have a small impact on users who subclass and override methods.
@author: Glyph Lefkowitz
� )�absolute_import�divisionN)�implementer� Interface)�log�reflect)�_PY3�unicode�
comparable�cmp� ) �setUnjellyableForClass�setUnjellyableForClassTree�setUnjellyableFactoryForClass�unjellyableRegistry� Jellyable�Unjellyable�setInstanceState�getInstanceState�_createBlanks copy� caches cached� remotec @ s e Zd ZdZdS )�NoSuchMethodz(Raised if there is no such remote methodN)�__name__�
__module__�__qualname__�__doc__� r r �8/usr/lib/python3/dist-packages/twisted/spread/flavors.pyr 2 s r c @ s e Zd ZdZdd� ZdS )�IPBRootz6Factory for root Referenceable objects for PB servers.c C s dS )z%Return root Referenceable for broker.Nr )�brokerr r r �
rootObject9 s zIPBRoot.rootObjectN�r r r r r! r r r r r 6 s r c @ s e Zd ZdZdd� ZdS )�Serializableax An object that can be passed remotely.
I am a style of object which can be serialized by Perspective
Broker. Objects which wish to be referenceable or copied remotely
have to subclass Serializable. However, clients of Perspective
Broker will probably not want to directly subclass Serializable; the
Flavors of transferable objects are listed below.
What it means to be "Serializable" is that an object can be
passed to or returned from a remote method. Certain basic types
(dictionaries, lists, tuples, numbers, strings) are serializable by
default; however, classes need to choose a specific serialization
style: L{Referenceable}, L{Viewable}, L{Copyable} or L{Cacheable}.
You may also pass C{[lists, dictionaries, tuples]} of L{Serializable}
instances to or return them from remote methods, as many levels deep
as you like.
c C s t | �S )z�Return an ID which uniquely represents this object for this process.
By default, this uses the 'id' builtin, but can be overridden to
indicate that two values are identity-equivalent (such as proxies
for the same object).
)�id��selfr r r �processUniqueIDQ s zSerializable.processUniqueIDN)r r r r r'