Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(24)

Side by Side Diff: third_party/twisted_8_1/twisted/internet/_win32stdio.py

Issue 12261012: Remove third_party/twisted_8_1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 # -*- test-case-name: twisted.test.test_process.ProcessTestCase.testStdio -*-
2
3 import win32api
4 import os, msvcrt
5
6 from zope.interface import implements
7
8 from twisted.internet.interfaces import IHalfCloseableProtocol, ITransport, IAdd ress
9 from twisted.internet.interfaces import IConsumer, IPushProducer
10
11 from twisted.internet import _pollingfile, main
12
13 class Win32PipeAddress(object):
14 implements(IAddress)
15
16 class StandardIO(_pollingfile._PollingTimer):
17
18 implements(ITransport,
19 IConsumer,
20 IPushProducer)
21
22 disconnecting = False
23 disconnected = False
24
25 def __init__(self, proto):
26 """
27 Start talking to standard IO with the given protocol.
28
29 Also, put it stdin/stdout/stderr into binary mode.
30 """
31 from twisted.internet import reactor
32
33 for stdfd in range(0, 1, 2):
34 msvcrt.setmode(stdfd, os.O_BINARY)
35
36 _pollingfile._PollingTimer.__init__(self, reactor)
37 self.proto = proto
38
39 hstdin = win32api.GetStdHandle(win32api.STD_INPUT_HANDLE)
40 hstdout = win32api.GetStdHandle(win32api.STD_OUTPUT_HANDLE)
41
42 self.stdin = _pollingfile._PollableReadPipe(
43 hstdin, self.dataReceived, self.readConnectionLost)
44
45 self.stdout = _pollingfile._PollableWritePipe(
46 hstdout, self.writeConnectionLost)
47
48 self._addPollableResource(self.stdin)
49 self._addPollableResource(self.stdout)
50
51 self.proto.makeConnection(self)
52
53 def dataReceived(self, data):
54 self.proto.dataReceived(data)
55
56 def readConnectionLost(self):
57 if IHalfCloseableProtocol.providedBy(self.proto):
58 self.proto.readConnectionLost()
59 self.checkConnLost()
60
61 def writeConnectionLost(self):
62 if IHalfCloseableProtocol.providedBy(self.proto):
63 self.proto.writeConnectionLost()
64 self.checkConnLost()
65
66 connsLost = 0
67
68 def checkConnLost(self):
69 self.connsLost += 1
70 if self.connsLost >= 2:
71 self.disconnecting = True
72 self.disconnected = True
73 self.proto.connectionLost(main.CONNECTION_DONE)
74
75 # ITransport
76
77 def write(self, data):
78 self.stdout.write(data)
79
80 def writeSequence(self, seq):
81 self.stdout.write(''.join(seq))
82
83 def loseConnection(self):
84 self.disconnecting = True
85 self.stdin.close()
86 self.stdout.close()
87
88 def getPeer(self):
89 return Win32PipeAddress()
90
91 def getHost(self):
92 return Win32PipeAddress()
93
94 # IConsumer
95
96 def registerProducer(self, producer, streaming):
97 return self.stdout.registerProducer(producer, streaming)
98
99 def unregisterProducer(self):
100 return self.stdout.unregisterProducer()
101
102 # def write() above
103
104 # IProducer
105
106 def stopProducing(self):
107 self.stdin.stopProducing()
108
109 # IPushProducer
110
111 def pauseProducing(self):
112 self.stdin.pauseProducing()
113
114 def resumeProducing(self):
115 self.stdin.resumeProducing()
116
OLDNEW
« no previous file with comments | « third_party/twisted_8_1/twisted/internet/_win32serialport.py ('k') | third_party/twisted_8_1/twisted/internet/abstract.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698