aboutsummaryrefslogtreecommitdiff
path: root/client.py
blob: 24a84290439ef7bbd6494bec1d226a7de152a67f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import sys
from threading import Thread
from queue import Queue
import time

#
# This code provide an example for connecting to the socket server.
#

from zope import component

from interfaces import endpoint
component.provideAdapter(endpoint.EndPoint)

from socket_conn import SocketConnection
conn = SocketConnection()


class Conn(Thread):

    def __init__(self, queue):
        Thread.__init__(self)
        self.queue = queue
        self.s = component.queryAdapter(conn, endpoint.IEndpoint)
        self.s.connect()
        self.in_queue = Queue()
        self.s.queue = self.in_queue

    def run(self):

        while True:
            while not self.queue.empty():
                text = self.queue.get(False)
                if text == -1:
                    sys.exit(0)
                elif text == "":
                    continue
                self.s.send([{"layout": text}])

            if not self.s.isConnected():
                time.sleep(2)
                self.s.connect()
                continue


            self.s.fetch()

            while not self.in_queue.empty():
                msg = self.in_queue.get(False)
                print(msg)
                # Print the promot again
                print("\n> ", end=u"", flush=True)

            time.sleep(0.2)

queue = Queue()
c = Conn(queue)
c.start()
print("Press ^D to quit")
while True:
    try:
        text = input("> ")
        queue.put(text)
        if text == "":
            continue
    except:
        queue.put(-1)
        break