MCPcopy Create free account
hub / github.com/fabioz/PyDev.Debugger / CompletionServer

Class CompletionServer

pycompletionserver.py:168–368  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

166
167
168class CompletionServer:
169 def __init__(self, port):
170 self.ended = False
171 self.port = port
172 self.socket = None # socket to send messages.
173 self.exit_process_on_kill = True
174 self.processor = Processor()
175
176 def connect_to_server(self):
177 from _pydev_bundle._pydev_saved_modules import socket
178
179 self.socket = s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
180 try:
181 s.connect((HOST, self.port))
182 except:
183 sys.stderr.write("Error on connect_to_server with parameters: host: %s port: %s\n" % (HOST, self.port))
184 raise
185
186 def get_completions_message(self, defFile, completionsList):
187 """
188 get message with completions.
189 """
190 return self.processor.format_completion_message(defFile, completionsList)
191
192 def get_token_and_data(self, data):
193 """
194 When we receive this, we have 'token):data'
195 """
196 token = ""
197 for c in data:
198 if c != ")":
199 token = token + c
200 else:
201 break
202
203 return token, data.lstrip(token + "):")
204
205 def emulated_sendall(self, msg):
206 MSGLEN = 1024 * 20
207
208 totalsent = 0
209 while totalsent < MSGLEN:
210 sent = self.socket.send(msg[totalsent:])
211 if sent == 0:
212 return
213 totalsent = totalsent + sent
214
215 def send(self, msg):
216 self.socket.sendall(bytearray(msg, "utf-8"))
217
218 def run(self):
219 # Echo server program
220 try:
221 from _pydev_bundle import _pydev_log
222
223 log = _pydev_log.Log()
224
225 dbg(SERVER_NAME + " connecting to java server on %s (%s)" % (HOST, self.port), INFO1)

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected