def reqOpenUrl(self, operation): def callback(orderID, dbID, success, datas): if uid != orderID: return if self.client: b = Bytes(datas) self.client.onOpenUrl(operation, b.get("url", "")) self.release() data = dict() passed = False for d in self.openUrlData(operation): if isinstance(d, dict): data.update(d) passed = True if not passed: return self.addRef() uid = str(KBEngine.genUUID64()) KBEngine.charge( uid, self.databaseID, Bytes(interface="openUrl", id=self.guaranteeID, operation=operation, data=data).dumps(), callback)
def syncData(self): def callback(orderID, dbID, success, datas): if uid != orderID: return data = Bytes(datas) dataList = data.get("x", []) self.consumeData(dataList) if self.client: self.client.onSyncData() self.release() self.addRef() uid = str(KBEngine.genUUID64()) KBEngine.charge(uid, self.databaseID, Bytes(interface="syncData", pk=self.pk).dumps(), callback)
def interfaceOperate(self, operate, t, d, c=None): def callback(orderID, dbid, success, datas): if uid != orderID: return data = Bytes(datas) if c: c(self, data) if self.client: self.client.onOperate(operate, t, python_client(data)) self.release() self.addRef() uid = str(KBEngine.genUUID64()) KBEngine.charge( uid, self.databaseID, Bytes(interface="operate", operate=operate, type=t, data=d).dumps(), callback)