Esempio n. 1
0
    def __init__(self, root, channel, config={}):
        self._closed = True
        self._config = DEFAULT_CONFIG.copy()
        self._config.update(config)
        if self._config["connid"] is None:
            self._config["connid"] = "conn%d" % (
                next(_connection_id_generator), )

        self._HANDLERS = self._request_handlers()
        self._channel = channel
        self._seqcounter = itertools.count()
        self._recvlock = Lock()
        self._sendlock = Lock()
        self._sync_replies = {}
        self._sync_lock = RLock()
        self._sync_event = Event()
        self._async_callbacks = {}
        self._local_objects = RefCountingColl()
        self._last_traceback = None
        self._proxy_cache = WeakValueDict()
        self._netref_classes_cache = {}
        self._remote_root = None
        self._send_queue = []
        self._local_root = root
        self._closed = False
Esempio n. 2
0
    def __init__(self, service, channel, config={}, _lazy=False):
        self._closed = True
        self._config = DEFAULT_CONFIG.copy()
        self._config.update(config)
        if self._config["connid"] is None:
            self._config["connid"] = "conn%d" % (
                next(_connection_id_generator), )

        self._channel = channel
        self._seqcounter = itertools.count()
        self._recvlock = Lock()
        self._sendlock = Lock()
        self._sync_replies = {}
        self._sync_lock = RLock()
        self._sync_event = Event()
        self._async_callbacks = {}
        self._local_objects = RefCountingColl()
        self._last_traceback = None
        self._proxy_cache = WeakValueDict()
        self._netref_classes_cache = {}
        self._remote_root = None
        self._local_root = service(weakref.proxy(self))
        if not _lazy:
            self._init_service()
        self._closed = False
Esempio n. 3
0
 def _handle_buffiter(self, oid, count):
     items = []
     obj = self._local_objects[oid]
     i = 0
     try:
         while i < count:
             items.append(next(obj))
             i += 1
     except StopIteration:
         pass
     return tuple(items)
Esempio n. 4
0
 def _handle_buffiter(self, oid, count):
     items = []
     obj = self._local_objects[oid]
     i = 0
     try:
         while i < count:
             items.append(next(obj))
             i += 1
     except StopIteration:
         pass
     return tuple(items)
Esempio n. 5
0
	def sync_request(self, handler, *args):
		"""Sends a synchronous request (waits for the reply to arrive)
		
		:raises: any exception that the requets may be generated
		:returns: the result of the request
		"""
		seq = next(self._seqcounter)
		q = event.AsyncResult()
		self._async_callbacks[seq] = self._gen_reply(q)
		seq = self._send_request(handler, args, seq=seq)
		isexc, obj = q.get()
		if isexc:
			raise obj
		else:
			return obj
Esempio n. 6
0
    def __init__(self, service, channel, config = {}, _lazy = False):
        self._closed = True
        self._config = DEFAULT_CONFIG.copy()
        self._config.update(config)
        if self._config["connid"] is None:
            self._config["connid"] = "conn%d" % (next(_connection_id_generator),)

        self._channel = channel
        self._seqcounter = itertools.count()
        self._recvlock = Lock()
        self._sendlock = Lock()
        self._sync_replies = {}
        self._async_callbacks = {}
        self._local_objects = RefCountingColl()
        self._last_traceback = None
        self._proxy_cache = WeakValueDict()
        self._netref_classes_cache = {}
        self._remote_root = None
        self._local_root = service(weakref.proxy(self))
        if not _lazy:
            self._init_service()
        self._closed = False
Esempio n. 7
0
    def __init__(self, root, channel, config={}):
        self._closed = True
        self._config = DEFAULT_CONFIG.copy()
        self._config.update(config)
        if self._config["connid"] is None:
            self._config["connid"] = "conn%d" % (next(_connection_id_generator),)

        self._HANDLERS = self._request_handlers()
        self._channel = channel
        self._seqcounter = itertools.count()
        self._recvlock = Lock()
        self._sendlock = Lock()
        self._recv_event = Condition()
        self._request_callbacks = {}
        self._local_objects = RefCountingColl()
        self._last_traceback = None
        self._proxy_cache = WeakValueDict()
        self._netref_classes_cache = {}
        self._remote_root = None
        self._send_queue = []
        self._local_root = root
        self._closed = False
Esempio n. 8
0
 def _get_seq_id(self):  # IO
     return next(self._seqcounter)
Esempio n. 9
0
	def _async_request(self, handler, args = (), callback = (lambda a, b: None)):
		seq = next(self._seqcounter)
		self._async_callbacks[seq] = callback
		seq = self._send_request(handler, args, seq=seq)
Esempio n. 10
0
	def _send_request(self, handler, args, seq=None):
		if seq is None:
			seq = next(self._seqcounter)
		#print >>sys.stderr,"out REQ",seq,args
		self._send(consts.MSG_REQUEST, seq, (handler, self._box(args)))
		return seq
Esempio n. 11
0
 def _send_request(self, handler, args):
     seq = next(self._seqcounter)
     self._send(consts.MSG_REQUEST, seq, (handler, self._box(args)))
     return seq
Esempio n. 12
0
 def _get_seq_id(self):
     return next(self._seqcounter)
Esempio n. 13
0
 def _send_request(self, handler, args):
     seq = next(self._seqcounter)
     self._send(consts.MSG_REQUEST, seq, (handler, self._box(args)))
     return seq
Esempio n. 14
0
 def _get_seq_id(self):
     seq = next(self._seqcounter)
     return seq