Package foolscap :: Module broker :: Class StorageBrokerRootUnslicer
[hide private]
[frames] | no frames]

Class StorageBrokerRootUnslicer

source code

           object --+            
                    |            
  slicer.BaseUnslicer --+        
                        |        
slicers.root.RootUnslicer --+    
                            |    
               PBRootUnslicer --+
                                |
                               StorageBrokerRootUnslicer

Nested Classes [hide private]

Inherited from slicer.BaseUnslicer: __metaclass__

Instance Methods [hide private]
 
__init__(self, protocol)
x.__init__(...) initializes x; see x.__class__.__doc__ for signature
source code
 
setObject(self, counter, obj)
To pass references to previously-sent objects, the [OPEN, 'reference', number, CLOSE] sequence is used.
source code
 
getObject(self, counter)
'None' means 'ask our parent instead'.
source code
 
receiveChild(self, obj, ready_deferred)
Unslicers for containers should accumulate their children's ready_deferreds, then combine them in an AsyncAND when receiveClose() happens, and return the AsyncAND as the ready_deferreds half of the receiveClose() return value.
source code
 
reportViolation(self, why) source code

Inherited from PBRootUnslicer: checkToken, doOpen, open, openerCheckToken

Inherited from slicers.root.RootUnslicer: describe, receiveClose, setConstraint, start

Inherited from slicer.BaseUnslicer: __providedBy__, explode, finish

Inherited from object: __delattr__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __str__

Class Variables [hide private]
  openRegistries = [{('boolean'): <class 'foolscap.slicers.bool....
  topRegistries = [{('boolean'): <class 'foolscap.slicers.bool.B...

Inherited from PBRootUnslicer: logViolations

Inherited from slicers.root.RootUnslicer: constraint, openCount

Inherited from slicer.BaseUnslicer: __implemented__, __provides__, opentype

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self, protocol)
(Constructor)

source code 

x.__init__(...) initializes x; see x.__class__.__doc__ for signature

Overrides: object.__init__
(inherited documentation)

setObject(self, counter, obj)

source code 

To pass references to previously-sent objects, the [OPEN, 'reference', number, CLOSE] sequence is used. The numbers are generated implicitly by the sending Banana, counting from 0 for the object described by the very first OPEN sent over the wire, incrementing for each subsequent one. The objects themselves are stored in any/all Unslicers who cares to. Generally this is the RootUnslicer, but child slices could do it too if they wished.

Overrides: slicer.BaseUnslicer.setObject
(inherited documentation)

getObject(self, counter)

source code 

'None' means 'ask our parent instead'.

Overrides: slicer.BaseUnslicer.getObject
(inherited documentation)

receiveChild(self, obj, ready_deferred)

source code 

Unslicers for containers should accumulate their children's ready_deferreds, then combine them in an AsyncAND when receiveClose() happens, and return the AsyncAND as the ready_deferreds half of the receiveClose() return value.

Overrides: slicer.BaseUnslicer.receiveChild
(inherited documentation)

reportViolation(self, why)

source code 
Overrides: slicer.BaseUnslicer.reportViolation

Class Variable Details [hide private]

openRegistries

Value:
[{('boolean'): <class 'foolscap.slicers.bool.BooleanUnslicer'>,
  ('decimal'): <class 'foolscap.slicers.decimal_slicer.DecimalUnslicer\
'>,
  ('dict'): <class 'foolscap.slicers.dict.DictUnslicer'>,
  ('immutable-set'): <class 'foolscap.slicers.set.FrozenSetUnslicer'>,
  ('list'): <class 'foolscap.slicers.list.ListUnslicer'>,
  ('none'): <class 'foolscap.slicers.none.NoneUnslicer'>,
  ('reference'): <class 'foolscap.slicer.ReferenceUnslicer'>,
...

topRegistries

Value:
[{('boolean'): <class 'foolscap.slicers.bool.BooleanUnslicer'>,
  ('decimal'): <class 'foolscap.slicers.decimal_slicer.DecimalUnslicer\
'>,
  ('dict'): <class 'foolscap.slicers.dict.DictUnslicer'>,
  ('immutable-set'): <class 'foolscap.slicers.set.FrozenSetUnslicer'>,
  ('list'): <class 'foolscap.slicers.list.ListUnslicer'>,
  ('none'): <class 'foolscap.slicers.none.NoneUnslicer'>,
  ('reference'): <class 'foolscap.slicer.ReferenceUnslicer'>,
...