当前位置: 首页>>代码示例>>Python>>正文


Python UnwrapObject.send方法代码示例

本文整理汇总了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)
开发者ID:Acidburn0zzz,项目名称:KomodoEdit,代码行数:17,代码来源:koXMLCatalogService.py

示例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)
开发者ID:Acidburn0zzz,项目名称:KomodoEdit,代码行数:75,代码来源:koCodeIntelXPCOMSupport.py


注:本文中的xpcom.server.UnwrapObject.send方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。