Python twisted.internet.interfaces.IPushProducer() Examples
The following are 30
code examples of twisted.internet.interfaces.IPushProducer().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
twisted.internet.interfaces
, or try the search function
.
Example #1
Source File: test_newclient.py From learn_python3_spider with MIT License | 6 votes |
def test_makeConnection(self): """ The L{IProtocol} provider passed to L{Response.deliverBody} has its C{makeConnection} method called with an L{IPushProducer} provider hooked up to the response as an argument. """ producers = [] transport = StringTransport() class SomeProtocol(Protocol): def makeConnection(self, producer): producers.append(producer) consumer = SomeProtocol() response = justTransportResponse(transport) response.deliverBody(consumer) [theProducer] = producers theProducer.pauseProducing() self.assertEqual(transport.producerState, u'paused') theProducer.resumeProducing() self.assertEqual(transport.producerState, u'producing')
Example #2
Source File: test_newclient.py From python-for-android with Apache License 2.0 | 6 votes |
def test_makeConnection(self): """ The L{IProtocol} provider passed to L{Response.deliverBody} has its C{makeConnection} method called with an L{IPushProducer} provider hooked up to the response as an argument. """ producers = [] transport = StringTransport() class SomeProtocol(Protocol): def makeConnection(self, producer): producers.append(producer) consumer = SomeProtocol() response = justTransportResponse(transport) response.deliverBody(consumer) [theProducer] = producers theProducer.pauseProducing() self.assertEqual(transport.producerState, 'paused') theProducer.resumeProducing() self.assertEqual(transport.producerState, 'producing')
Example #3
Source File: _newclient.py From python-for-android with Apache License 2.0 | 6 votes |
def deliverBody(self, protocol): """ Register an L{IProtocol} provider to receive the response body. The protocol will be connected to a transport which provides L{IPushProducer}. The protocol's C{connectionLost} method will be called with: - ResponseDone, which indicates that all bytes from the response have been successfully delivered. - PotentialDataLoss, which indicates that it cannot be determined if the entire response body has been delivered. This only occurs when making requests to HTTP servers which do not set I{Content-Length} or a I{Transfer-Encoding} in the response. - ResponseFailed, which indicates that some bytes from the response were lost. The C{reasons} attribute of the exception may provide more specific indications as to why. """
Example #4
Source File: iweb.py From learn_python3_spider with MIT License | 6 votes |
def deliverBody(protocol): """ Register an L{IProtocol<twisted.internet.interfaces.IProtocol>} provider to receive the response body. The protocol will be connected to a transport which provides L{IPushProducer}. The protocol's C{connectionLost} method will be called with: - ResponseDone, which indicates that all bytes from the response have been successfully delivered. - PotentialDataLoss, which indicates that it cannot be determined if the entire response body has been delivered. This only occurs when making requests to HTTP servers which do not set I{Content-Length} or a I{Transfer-Encoding} in the response. - ResponseFailed, which indicates that some bytes from the response were lost. The C{reasons} attribute of the exception may provide more specific indications as to why. """
Example #5
Source File: test_newclient.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def test_makeConnection(self): """ The L{IProtocol} provider passed to L{Response.deliverBody} has its C{makeConnection} method called with an L{IPushProducer} provider hooked up to the response as an argument. """ producers = [] transport = StringTransport() class SomeProtocol(Protocol): def makeConnection(self, producer): producers.append(producer) consumer = SomeProtocol() response = justTransportResponse(transport) response.deliverBody(consumer) [theProducer] = producers theProducer.pauseProducing() self.assertEqual(transport.producerState, u'paused') theProducer.resumeProducing() self.assertEqual(transport.producerState, u'producing')
Example #6
Source File: iweb.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def deliverBody(protocol): """ Register an L{IProtocol<twisted.internet.interfaces.IProtocol>} provider to receive the response body. The protocol will be connected to a transport which provides L{IPushProducer}. The protocol's C{connectionLost} method will be called with: - ResponseDone, which indicates that all bytes from the response have been successfully delivered. - PotentialDataLoss, which indicates that it cannot be determined if the entire response body has been delivered. This only occurs when making requests to HTTP servers which do not set I{Content-Length} or a I{Transfer-Encoding} in the response. - ResponseFailed, which indicates that some bytes from the response were lost. The C{reasons} attribute of the exception may provide more specific indications as to why. """
Example #7
Source File: outbound.py From magic-wormhole with MIT License | 5 votes |
def subchannel_registerProducer(self, sc, producer, streaming): # streaming==True: IPushProducer (pause/resume) # streaming==False: IPullProducer (just resume) if sc in self._subchannel_producers: raise ValueError( "registering producer %s before previous one (%s) was " "unregistered" % (producer, self._subchannel_producers[sc])) # our underlying Connection uses streaming==True, so to make things # easier, use an adapter when the Subchannel asks for streaming=False if not streaming: def unregister(): self.subchannel_unregisterProducer(sc) producer = PullToPush(producer, unregister, self._cooperator) self._subchannel_producers[sc] = producer self._all_producers.append(producer) if self._paused: self._paused_producers.add(producer) else: self._unpaused_producers.add(producer) self._check_invariants() if streaming: if self._paused: # IPushProducers need to be paused immediately, before they # speak producer.pauseProducing() # you wake up sleeping else: # our PullToPush adapter must be started, but if we're paused then # we tell it to pause before it gets a chance to write anything producer.startStreaming(self._paused)
Example #8
Source File: test_filedescriptor.py From learn_python3_spider with MIT License | 5 votes |
def test_implementInterfaceIPushProducer(self): """ L{FileDescriptor} should implement L{IPushProducer}. """ self.assertTrue(verifyClass(IPushProducer, FileDescriptor))
Example #9
Source File: test_loopback.py From learn_python3_spider with MIT License | 5 votes |
def test_pushProducer(self): """ Test a push producer registered against a loopback transport. """ @implementer(IPushProducer) class PushProducer(object): resumed = False def __init__(self, toProduce): self.toProduce = toProduce def resumeProducing(self): self.resumed = True def start(self, consumer): self.consumer = consumer consumer.registerProducer(self, True) self._produceAndSchedule() def _produceAndSchedule(self): if self.toProduce: self.consumer.write(self.toProduce.pop(0)) reactor.callLater(0, self._produceAndSchedule) else: self.consumer.unregisterProducer() d = self._producertest(PushProducer) def finished(results): (client, server) = results self.assertFalse( server.producer.resumed, "Streaming producer should not have been resumed.") d.addCallback(finished) return d
Example #10
Source File: test_iosim.py From learn_python3_spider with MIT License | 5 votes |
def stopProducing(self): if self._state == u"stopped": raise ValueError(u"Cannot stop already-stopped IPushProducer") self._state = u"stopped"
Example #11
Source File: test_iosim.py From learn_python3_spider with MIT License | 5 votes |
def pauseProducing(self): if self._state != u"running": raise ValueError( u"Cannot pause {} IPushProducer".format(self._state) ) self._state = u"paused"
Example #12
Source File: test_iosim.py From learn_python3_spider with MIT License | 5 votes |
def resumeProducing(self): if self._state != u"paused": raise ValueError( u"Cannot resume {} IPushProducer".format(self._state) ) self._state = u"running"
Example #13
Source File: test_iosim.py From learn_python3_spider with MIT License | 5 votes |
def _testStreamingProducer(self, mode): """ Connect a couple protocol/transport pairs to an L{IOPump} and then pump it. Verify that a streaming producer registered with one of the transports does not receive invalid L{IPushProducer} method calls and ends in the right state. @param mode: C{u"server"} to test a producer registered with the server transport. C{u"client"} to test a producer registered with the client transport. """ serverProto = Protocol() serverTransport = FakeTransport(serverProto, isServer=True) clientProto = Protocol() clientTransport = FakeTransport(clientProto, isServer=False) pump = connect( serverProto, serverTransport, clientProto, clientTransport, greet=False, ) producer = StrictPushProducer() victim = { u"server": serverTransport, u"client": clientTransport, }[mode] victim.registerProducer(producer, streaming=True) pump.pump() self.assertEqual(u"running", producer._state)
Example #14
Source File: test_iosim.py From learn_python3_spider with MIT License | 5 votes |
def test_clientStreamingProducer(self): """ L{IOPump.pump} does not call C{resumeProducing} on a L{IPushProducer} (stream producer) registered with the client transport. """ self._testStreamingProducer(mode=u"client")
Example #15
Source File: test_endpoints.py From learn_python3_spider with MIT License | 5 votes |
def test_registerProducer(self): """ Registering a producer with the endpoint transport registers it with the underlying process transport. """ @implementer(IPushProducer) class AProducer(object): pass aProducer = AProducer() self.endpointTransport.registerProducer(aProducer, False) self.assertIs(self.process.producer, aProducer)
Example #16
Source File: outbound.py From magic-wormhole with MIT License | 5 votes |
def use_connection(self, c): self._connection = c assert not self._queued_unsent self._queued_unsent.extend(self._outbound_queue) # the connection can tell us to pause when we send too much data c.transport.registerProducer(self, True) # IPushProducer: pause+resume # send our queued messages self.resumeProducing()
Example #17
Source File: outbound.py From magic-wormhole with MIT License | 5 votes |
def handle_ack(self, resp_seqnum): # we've received an inbound ack, so retire something while (self._outbound_queue and self._outbound_queue[0].seqnum <= resp_seqnum): self._outbound_queue.popleft() while (self._queued_unsent and self._queued_unsent[0].seqnum <= resp_seqnum): self._queued_unsent.popleft() # Inbound is responsible for tracking the high watermark and deciding # whether to ignore inbound messages or not # IPushProducer: the active connection calls these because we used # c.transport.registerProducer to ask for them
Example #18
Source File: _newclient.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def _stopProxying(self): """ Stop forwarding calls of L{twisted.internet.interfaces.IPushProducer} methods to the underlying L{twisted.internet.interfaces.IPushProducer} provider. """ self._producer = None
Example #19
Source File: _newclient.py From python-for-android with Apache License 2.0 | 5 votes |
def _stopProxying(self): """ Stop forwarding calls of L{IPushProducer} methods to the underlying L{IPushProvider} provider. """ self._producer = None
Example #20
Source File: test_newclient.py From python-for-android with Apache License 2.0 | 5 votes |
def test_interface(self): """ L{TransportProxyProducer} instances provide L{IPushProducer}. """ self.assertTrue( verifyObject(IPushProducer, TransportProxyProducer(None)))
Example #21
Source File: test_newclient.py From python-for-android with Apache License 2.0 | 5 votes |
def test_stopProxyingUnreferencesProducer(self): """ L{TransportProxyProducer._stopProxying} drops the reference to the wrapped L{IPushProducer} provider. """ transport = StringTransport() proxy = TransportProxyProducer(transport) self.assertIdentical(proxy._producer, transport) proxy._stopProxying() self.assertIdentical(proxy._producer, None)
Example #22
Source File: generic_ws.py From Paradrop with Apache License 2.0 | 5 votes |
def write(self, data): self.sendMessage(data) if not self.streaming: self.producer.resumeProducing() # # IPushProducer interface #
Example #23
Source File: test_endpoints.py From learn_python3_spider with MIT License | 5 votes |
def test_verifyProducer(self): """ L{_ProcessEndpointTransport}s provide L{IPushProducer}. """ verifyObject(IPushProducer, self.endpointTransport)
Example #24
Source File: abstract.py From learn_python3_spider with MIT License | 5 votes |
def registerProducer(self, producer, streaming): """ Register to receive data from a producer. This sets this selectable to be a consumer for a producer. When this selectable runs out of data on a write() call, it will ask the producer to resumeProducing(). When the FileDescriptor's internal data buffer is filled, it will ask the producer to pauseProducing(). If the connection is lost, FileDescriptor calls producer's stopProducing() method. If streaming is true, the producer should provide the IPushProducer interface. Otherwise, it is assumed that producer provides the IPullProducer interface. In this case, the producer won't be asked to pauseProducing(), but it has to be careful to write() data only when its resumeProducing() method is called. """ if self.producer is not None: raise RuntimeError( "Cannot register producer %s, because producer %s was never " "unregistered." % (producer, self.producer)) if self.disconnected: producer.stopProducing() else: self.producer = producer self.streamingProducer = streaming if not streaming: producer.resumeProducing()
Example #25
Source File: hostapd_control.py From Paradrop with Apache License 2.0 | 5 votes |
def write(self, data): self.transport.write(data) if not self.streaming: self.producer.resumeProducing() # # IPushProducer interface #
Example #26
Source File: test_newclient.py From learn_python3_spider with MIT License | 5 votes |
def test_interface(self): """ L{TransportProxyProducer} instances provide L{IPushProducer}. """ self.assertTrue( verifyObject(IPushProducer, TransportProxyProducer(None)))
Example #27
Source File: http.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def connectionMade(self): self.setTimeout(self.timeOut) self._networkProducer = interfaces.IPushProducer( self.transport, _NoPushProducer() ) self._networkProducer.registerProducer(self, True)
Example #28
Source File: http.py From learn_python3_spider with MIT License | 5 votes |
def registerProducer(self, producer, streaming): """ Register to receive data from a producer. This sets self to be a consumer for a producer. When this object runs out of data (as when a send(2) call on a socket succeeds in moving the last data from a userspace buffer into a kernelspace buffer), it will ask the producer to resumeProducing(). For L{IPullProducer} providers, C{resumeProducing} will be called once each time data is required. For L{IPushProducer} providers, C{pauseProducing} will be called whenever the write buffer fills up and C{resumeProducing} will only be called when it empties. @type producer: L{IProducer} provider @param producer: The L{IProducer} that will be producing data. @type streaming: L{bool} @param streaming: C{True} if C{producer} provides L{IPushProducer}, C{False} if C{producer} provides L{IPullProducer}. @raise RuntimeError: If a producer is already registered. @return: L{None} """ if self._requestProducer is not None: raise RuntimeError( "Cannot register producer %s, because producer %s was never " "unregistered." % (producer, self._requestProducer)) if not streaming: producer = _PullToPush(producer, self) self._requestProducer = producer self._requestProducerStreaming = streaming if not streaming: producer.startStreaming()
Example #29
Source File: http.py From learn_python3_spider with MIT License | 5 votes |
def connectionMade(self): self.setTimeout(self.timeOut) self._networkProducer = interfaces.IPushProducer( self.transport, _NoPushProducer() ) self._networkProducer.registerProducer(self, True)
Example #30
Source File: _newclient.py From learn_python3_spider with MIT License | 5 votes |
def stopProxying(self): """ Stop forwarding calls of L{twisted.internet.interfaces.IPushProducer} methods to the underlying L{twisted.internet.interfaces.IPushProducer} provider. """ self._producer = None