+
    üÐj,  ã                   ó’   € R t ^ RIt^ RIHt ^ RIHtHtHt  ! R R]P                  4      t	 ! R R]P                  4      tR tR	 tR# )
z]
Persistently cached objects for PB.

Maintainer: Glyph Lefkowitz

Future Plans: None known.
N)Údefer)ÚbananaÚflavorsÚjellyc                   óH   a € ] tR t^t o RtR tR tR tR tR t	R t
RtV tR	# )
ÚPublishablez6An object whose cached state persists across sessions.c                ó2   € V P                  4        Wn        R # )N)Ú	republishÚpublishedID)Úselfr
   s   &&Ú8/usr/lib/python3/dist-packages/twisted/spread/publish.pyÚ__init__ÚPublishable.__init__   s   € Ø�‰ÔØ&Öó    c                ó:   € \         P                   ! 4       V n        R# )z=Set the timestamp to current and (TODO) update all observers.N)ÚtimeÚ	timestamp©r   s   &r   r	   ÚPublishable.republish   s   € äŸš›ˆŽr   c                ó$   € V P                  V4      # )ú
(internal))ÚgetStateToPublishFor©r   Úperspectives   &&r   Úview_getStateToPublishÚ"Publishable.view_getStateToPublish   s   € à×(Ñ(¨Ó5Ð5r   c                ó"   € V P                  4       # )z:Implement me to special-case your state for a perspective.)ÚgetStateToPublishr   s   &&r   r   Ú Publishable.getStateToPublishFor#   s   € à×%Ñ%Ó'Ð'r   c                ó:   € \        RV P                  ,          4      h)zBImplement me to return state to copy as part of the publish phase.z%s.getStateToPublishFor)ÚNotImplementedErrorÚ	__class__r   s   &r   r   ÚPublishable.getStateToPublish'   s   € ä!Ð";¸d¿n¹nÕ"LÓMÐMr   c           
     óÐ   € V'       d(   VP                   pVP                  4       P                  pMRpRpR\        P                  ! W4      RV P
                  RVRVRV P                  /# )z6Get all necessary metadata to keep a clientside cache.ÚNoneÚremoter
   r   Úservicer   )ÚperspectiveNameÚ
getServiceÚserviceNamer   Ú	ViewPointr
   r   )r   r   ÚobserverÚpnameÚsnames   &&&  r   ÚgetStateToCacheAndObserveForÚ(Publishable.getStateToCacheAndObserveFor+   sh   € çØ×/Ñ/ˆEØ×*Ñ*Ó,×8Ñ8‰EàˆEØˆEð ”g×'Ò'¨Ó:Ø˜4×+Ñ+Ø˜5Ø�uØ˜Ÿ™ð
ð 	
r   )r
   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r	   r   r   r   r.   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r   r      s,   ø‡ € Ù@ò'ò%ò6ò(òN÷
ð 
r   r   c                   óT   a € ] tR t^=t o Rt^ t^ tR
R ltR tR t	R t
R tR tRtV tR	# )ÚRemotePublishedz6The local representation of remote Publishable object.c                óx   € R P                  V P                  V P                  \        V P                  4      V4      # )z{}-{}-{}.{})Úformatr&   r   Ústrr
   )r   Úexts   &&r   ÚgetFileNameÚRemotePublished.getFileNameC   s6   € Ø×#Ñ#Ø�L‰LØ×ÑÜ�× Ñ Ó!Øó	
ð 	
r   c                óT  € V P                   P                  V4       . V n         \        V P	                  4       R 4      ;_uu_ 4       pVP                  4       pRRR4       \        P                  ! \        P                  ! X4      4      pVP                  V P                  8H  pV'       d%   V P                  XP                   4       ^V n        R# V P                  P                  R4      P!                  V P                  4       R#   + '       g   i     Lµ; i  \         d    ^ p L„i ; i)ÚrbNr   )Ú__dict__ÚupdateÚ_activationListenersÚopenr?   Úreadr   Úunjellyr   Údecoder   ÚOSErrorÚ_cbGotUpdateÚ_wasCleanWhenLoadedr%   Ú
callRemoteÚaddCallbacks)r   ÚstateÚdataFileÚdataÚnewselfÚrecents   &&    r   ÚsetCopyableStateÚ RemotePublished.setCopyableStateK   sÕ   € Ø�‰×Ñ˜UÔ#Ø$&ˆÔ!ð	9Ü�d×&Ñ&Ó(¨$×/Ô/°8Ø—}‘}“�÷ 0ô
 —m’m¤F§M¢M°$Ó$7Ó8ˆGØ×&Ñ&¨$¯.©.Ñ8ˆFßØ×Ñ˜g×.Ñ.Ô/Ø'(ˆDÖ$à�K‰K×"Ñ"Ð#6Ó7×DÑDÀT×EVÑEVÖW÷ 0×/ûäô 	ØŠFð	ús)   ¤"D ÁDÁD ÄD	ÄD ÄD'Ä&D'c                óX   € V P                   P                  4       pVR  VR VR VR VR V# )Úbrokerr%   ÚluidrE   ÚisActivated)rC   Úcopy)r   Úothers   & r   Ú__getstate__ÚRemotePublished.__getstate__\   s?   € Ø—‘×"Ñ"Ó$ˆà�(ˆOØ�(ˆOØ�&ˆMàÐ(Ð)Ø�-Ð Øˆr   c           	     óž  € V P                   P                  V4       ^V n        V P                   F  pV! V 4       K  	  . V n        V P	                  4        \        V P                  4       R4      ;_uu_ 4       pVP                  \        P                  ! \        P                  ! V 4      4      4       RRR4       R#   + '       g   i     R# ; i)é   ÚwbN)rC   rD   rY   rE   Ú	activatedrF   r?   Úwriter   Úencoder   )r   ÚnewStateÚlistenerrP   s   &&  r   rK   ÚRemotePublished._cbGotUpdateg   sŠ   € Ø�‰×Ñ˜XÔ&ØˆÔà×1Ô1ˆHÙ�TŽNñ 2à$&ˆÔ!Ø�‰ÔÜ�$×"Ñ"Ó$ d×+Ô+¨xØ�N‰Nœ6Ÿ=š=¬¯ª°TÓ):Ó;Ô<÷ ,×+×+Ò+ús   Á7:B;Â;C	c                ó   € R# )z^Implement this method if you want to be notified when your
publishable subclass is activated.
N© r   s   &r   ra   ÚRemotePublished.activatedr   s   ‚ r   c                ót   € V P                   '       d   V! V 4       R# V P                  P                  V4       R# )zZExternally register for notification when this publishable has received all relevant data.N)rY   rE   Úappend)r   Úcallbacks   &&r   ÚcallWhenActivatedÚ!RemotePublished.callWhenActivatedw   s)   € à××ÐÙ�TŽNà×%Ñ%×,Ñ,¨XÖ6r   )rE   rL   rY   N)Úpub)r0   r1   r2   r3   r4   rY   rL   r?   rT   r\   rK   ra   rm   r5   r6   r7   s   @r   r:   r:   =   s7   ø‡ € Ù@à€KØÐô
òXò"	ò	=ò÷
7ð 7r   r:   c                óv   € \         P                  ! 4       pV P                  \        VP                  V3R7       V# )a,  
Wrap a deferred returned from a pb method in another deferred that
expects a RemotePublished as a result.  This will allow you to wait until
the result is really available.

Idiomatic usage would look like::

    publish.whenReady(serverObject.getMeAPublishable()).addCallback(lookAtThePublishable)
)ÚcallbackArgs)r   ÚDeferredrN   Ú	_pubReadyÚerrback)ÚdÚd2s   & r   Ú	whenReadyrw      s-   € ô 
�ŠÓ	€BØ‡N�N”9˜bŸj™j¸°u€NÔ=Ø€Ir   c                ó<   € V P                  VP                  4       R# )r   N)rm   rl   )Úresultrv   s   &&r   rs   rs   Ž   s   € à
×Ñ˜RŸ[™[Ö)r   )r4   r   Útwisted.internetr   Útwisted.spreadr   r   r   Ú	Cacheabler   ÚRemoteCacher:   rw   rs   rh   r   r   Ú<module>r~      sH   ðñ
ó å "ß 1Ñ 1ô&
�'×#Ñ#ô &
ôR?7�g×)Ñ)ô ?7òDô*r   