Ejemplo n.º 1
0
def serialize_atom(bridge, atom):
    # Store as callback if callable
    if callable(atom):
        if getattr(atom, '_reference', None) is not None:
            return atom._reference._to_dict()
        else:
            return bridge._store_object(Callback(atom), ['callback'])._to_dict()
    # Call to_dict if reference
    elif isinstance(atom, reference.Reference):
        return atom._to_dict()
    # If not JSON serializeable store as service
    elif not util.is_primitive(atom):
        return bridge._store_object(atom, util.find_ops(atom))._to_dict()
    else:
        return atom
Ejemplo n.º 2
0
 def hookChannelHandler(self, name, handler, func=None):
     # Store under channel name
     self._bridge._store['channel:' + name] = handler
     if func:
         # Send callback with reference to channel and handler operations
         func(reference.Reference(self._bridge, ['channel', name, 'channel:' + name], util.find_ops(handler)), name)