Exemple #1
0
 def add_acceptor(self, descriptor, name):
     assert name in self.slots, 'wrong name given'
     pipe = Pipe(self.loop)
     pipe.open(descriptor)
     kwargs = dict(backlog=self.slots[name].listener.backlog)
     acceptor = self.acceptors[name] = self.Acceptor(name, pipe, **kwargs)
     acceptor.start()
Exemple #2
0
 def add_acceptor(self, descriptor, name):
     assert name in self.slots, 'wrong name given'
     pipe = Pipe(self.loop)
     pipe.open(descriptor)
     kwargs = dict(backlog=self.slots[name].listener.backlog)
     acceptor = self.acceptors[name] = self.Acceptor(name, pipe, **kwargs)
     acceptor.start()
Exemple #3
0
    def channel(self):
        """Wrapper for socket. Needed to pass descriptor
        to child process.

        """
        pipe = Pipe(self.loop)
        pipe.open(self.socket.fileno())
        return pipe
Exemple #4
0
    def channel(self):
        """Wrapper for socket. Needed to pass descriptor
        to child process.

        """
        pipe = Pipe(self.loop)
        pipe.open(self.socket.fileno())
        return pipe
Exemple #5
0
class Stream(object):
    """Wrapper for plain file descriptor."""

    def __init__(self, loop, fd):
        self.loop = loop
        self.channel = Pipe(loop)
        self.fd = fd
        self._emitter = EventEmitter(loop)

    def start(self):
        self._emitter.subscribe("WRITE", self._on_write)
        self.channel.open(self.fd)
        self.channel.start_read(self._on_read)

    def write(self, data):
        self._emitter.publish("WRITE", data)

    def subscribe(self, listener):
        self._emitter.subscribe('READ', listener)

    def unsubscribe(self, listener):
        self._emitter.unsubscribe('READ', listener)

    def stop(self, all_events=False):
        if self.channel.active:
            self.channel.close()

        if all_events:
            self._emitter.close()

    def _on_write(self, evtype, data):
        self.channel.write(data)

    def _on_read(self, handle, data, error):
        if not data:
            return

        msg = dict(event='READ', data=data)
        self._emitter.publish('READ', msg)
Exemple #6
0
class Stream(object):
    """Wrapper for plain file descriptor."""
    def __init__(self, loop, fd):
        self.loop = loop
        self.channel = Pipe(loop)
        self.fd = fd
        self._emitter = EventEmitter(loop)

    def start(self):
        self._emitter.subscribe("WRITE", self._on_write)
        self.channel.open(self.fd)
        self.channel.start_read(self._on_read)

    def write(self, data):
        self._emitter.publish("WRITE", data)

    def subscribe(self, listener):
        self._emitter.subscribe('READ', listener)

    def unsubscribe(self, listener):
        self._emitter.unsubscribe('READ', listener)

    def stop(self, all_events=False):
        if self.channel.active:
            self.channel.close()

        if all_events:
            self._emitter.close()

    def _on_write(self, evtype, data):
        self.channel.write(data)

    def _on_read(self, handle, data, error):
        if not data:
            return

        msg = dict(event='READ', data=data)
        self._emitter.publish('READ', msg)
Exemple #7
0
 def _pipe(self):
     pipe = Pipe(self.loop)
     pipe.open(self.descriptor)
     return pipe
Exemple #8
0
 def _pipe(self):
     pipe = Pipe(self.loop)
     pipe.open(self.descriptor)
     return pipe