def __init__(self, room, url=None, databaseName=None, query=True, idQuery=False, createIfMissing=False):
        Peer.__init__(self, room)
        AbstractQuery.__init__(self)
        Database.__init__(self)

        self._doQuery = query
        self._createIfMissing = createIfMissing

        self._lastQuery = {}

        if query:
            AbstractQuery.__init__(self)

        self._viewDocs = {}

        if url != None and databaseName != None:
            self._database = couchdb.Database.getDatabase(url+'/'+databaseName, self._connectionStatusChanged)
        else:
            self._database = couchdb.Database.getDatabase(databaseName, self._connectionStatusChanged)
    def __init__(self, room):
        Viewer.__init__(self, room, self._changed, "_id")
        AbstractQuery.__init__(self)

        self._viewer = None
        self._lastQuery = None