def deleteConnection(self, connection):
        # Delete referenced properties 1st
        db.delete(
            GaeConnectionModel.last_active.get_value_for_datastore(
                connection.model))
        db.delete(
            GaeConnectionModel.connected.get_value_for_datastore(
                connection.model))
        db.delete(
            GaeConnectionModel.last_polled.get_value_for_datastore(
                connection.model))

        # Optional referenced properties
        authentication_key = GaeConnectionModel.authentication.get_value_for_datastore(
            connection.model)
        if authentication_key is not None:
            db.delete(authentication_key)

        session_key = GaeConnectionModel.session.get_value_for_datastore(
            connection.model)
        if session_key is not None:
            db.delete(session_key)

        # Delete connection
        connection.model.delete()
        connection.model = None
        ConnectionManager.deleteConnection(self, connection)

        db.run_in_transaction(self._decrementChannelCount,
                              connection.channel_name)
    def deleteConnection(self, connection):
        d = self.connections.delete().\
            where(self.connections.c.id==connection.id)
        db = self.getDb()
        db.execute(d)
        db.close()

        ConnectionManager.deleteConnection(self, connection)
    def deleteConnection(self, connection):
        d = self.connections.delete().\
            where(self.connections.c.id==connection.id)
        db = self.getDb()
        db.execute(d)
        db.close()

        ConnectionManager.deleteConnection(self, connection)
    def deleteConnection(self, connection):
        lock_name = self.getLockName(self.CONNECTIONS_ATTR)
        self._lock.acquire(lock_name)
        try:
            connection_ids = self.mc.get(self.CONNECTIONS_ATTR)
            for i, connection_id in enumerate(connection_ids):
                if connection_id == connection.id:
                    connection_ids.pop(i)
                    break
            self.mc.set(self.CONNECTIONS_ATTR, connection_ids)
        finally:
            self._lock.release(lock_name)

        keys = [self.getKeyName(connection.id, attr) for attr in self.ATTRIBUTES]
        self.mc.delete_multi(keys)

        self.decrementChannelCount(connection.channel_name)

        ConnectionManager.deleteConnection(self, connection)
    def deleteConnection(self, connection):
        lock_name = self.getLockName(self.CONNECTIONS_ATTR)
        self._lock.acquire(lock_name)
        try:
            connection_ids = self.mc.get(self.CONNECTIONS_ATTR)
            for i, connection_id in enumerate(connection_ids):
                if connection_id == connection.id:
                    connection_ids.pop(i)
                    break
            self.mc.set(self.CONNECTIONS_ATTR, connection_ids)
        finally:
            self._lock.release(lock_name)

        keys = [self.getKeyName(connection.id, attr) for attr in self.ATTRIBUTES]
        self.mc.delete_multi(keys)

        self.decrementChannelCount(connection.channel_name)

        ConnectionManager.deleteConnection(self, connection)
    def deleteConnection(self, connection):
        # Delete referenced properties 1st
        db.delete(GaeConnectionModel.last_active.get_value_for_datastore(connection.model))
        db.delete(GaeConnectionModel.connected.get_value_for_datastore(connection.model))
        db.delete(GaeConnectionModel.last_polled.get_value_for_datastore(connection.model))

        # Optional referenced properties
        authentication_key = GaeConnectionModel.authentication.get_value_for_datastore(connection.model)
        if authentication_key is not None:
            db.delete(authentication_key)

        session_key = GaeConnectionModel.session.get_value_for_datastore(connection.model)
        if session_key is not None:
            db.delete(session_key)

        # Delete connection
        connection.model.delete()
        connection.model = None
        ConnectionManager.deleteConnection(self, connection)

        db.run_in_transaction(self._decrementChannelCount, connection.channel_name)