本文整理汇总了Python中xpcom.server.UnwrapObject.send方法的典型用法代码示例。如果您正苦于以下问题:Python UnwrapObject.send方法的具体用法?Python UnwrapObject.send怎么用?Python UnwrapObject.send使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xpcom.server.UnwrapObject
的用法示例。
在下文中一共展示了UnwrapObject.send方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _get
# 需要导入模块: from xpcom.server import UnwrapObject [as 别名]
# 或者: from xpcom.server.UnwrapObject import send [as 别名]
def _get(self, kind, callback):
def on_have_catalogs(request, response):
try:
cb = callback.callback
except AttributeError:
cb = callback # not XPCOM?
items = response.get(kind)
if items is None or not response.get("success"):
cb(Ci.koIAsyncCallback.RESULT_ERROR, [])
else:
cb(Ci.koIAsyncCallback.RESULT_SUCCESSFUL, items)
cisvc = UnwrapObject(Cc["@activestate.com/koCodeIntelService;1"]
.getService())
cisvc.send(command="get-xml-catalogs", callback=on_have_catalogs)
示例2: run
# 需要导入模块: from xpcom.server import UnwrapObject [as 别名]
# 或者: from xpcom.server.UnwrapObject import send [as 别名]
def run(self):
"""Background thread to handle code intelligence queries"""
while True:
if socket is None:
break # in the middle of shut down
self._sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self._sock.bind(("127.0.0.1", 0))
self._sock.listen(0)
self._read_buffer = ""
self._ready_to_connect.wait()
mgr = UnwrapObject(Cc["@activestate.com/koCodeIntelService;1"]
.getService())
host, port = self._sock.getsockname()
log.debug("Requesting connection... (to %s %s)", host, port)
mgr.send(command="xpcom-connect", host=host, port=port)
try:
conn = self._sock.accept()
self._pipe = conn[0]
log.debug("Connected from %s:%i to %s:%i",
*(list(self._pipe.getsockname()) + list(conn[1])))
continue_reading = True
while continue_reading:
# Read a request
size = ""
while True:
if not self._read_buffer:
try:
self._read_buffer = self._pipe.recv(4096)
except socket.error:
log.debug("Connection closed")
continue_reading = False
break # connection closed
else:
if not self._read_buffer:
# EOF
continue_reading = False
break
log.debug("buffer: %s", self._read_buffer)
char = self._read_buffer[0]
if char in "0123456789":
size += char
self._read_buffer = self._read_buffer[1:]
else:
break
if not continue_reading:
break
log.debug("got size %r, remaining %s", size, self._read_buffer)
size = int(size)
while len(self._read_buffer) < size:
try:
self._read_buffer += self._pipe.recv(4096)
except socket.error:
log.debug("Connection closed reading data")
continue_reading = False
break
if not continue_reading:
break
data = self._read_buffer[:size]
self._read_buffer = self._read_buffer[size:]
log.debug("<< %s", data)
request = json.loads(data)
try:
meth = getattr(self, "do_" + request.get("command").replace("-", "_"))
meth(**request)
except:
log.exception("Failed to call method")
break
except Exception as ex:
if not log:
break # log can be None on shutdown
log.exception(ex)