def initialize(self):
        from wallaby.pf.room import House
        observer = House.observer()

        from wallaby.common.document import Document
        doc = Document()

        peerNames = sorted(observer.allPeers().keys())

        peers = []

        for peer in peerNames:
            ibp = observer.inBoundPillows(peer)
            obp = observer.outBoundPillows(peer)

            peers.append({
                "name": peer,
                "inBound": ibp,
                "outBound": obp
            })

        doc.set("peers", peers)
        self._throw(Viewer.In.Document, doc)
        
        # Wildcard credentials
        from credentials import Credentials
        self._throw(Credentials.Out.Credential, Document())
 def __init__(self, documentID=None, data=None, database=None):
     Document.__init__(self, documentID, data)
     self._database = database
     self._attachmentData = {}
     self._changedAttachments = []
     self._deletedAttachments = []
     self._getAttachmentDefers = {}
     self._conflicts = []
    def __subClone(self, pillow, feathers):
        if not feathers or not self._document:
            return

        path = feathers
        doc = None

        if ";" in feathers:
            path, doc = feathers.split(";")

        item = self._document.get(path)
        if not item:
            return

        from wallaby.common.document import Document

        newDoc = Document(data=copy.deepcopy(item))
        newDoc.resetDocumentID()

        if doc:
            yield DocumentChanger.transform(newDoc, doc)

        self._throw(Database.In.SaveDocument, (newDoc, None))