Revision fc804c4b
b/src/session.py | ||
---|---|---|
28 | 28 |
self.client_capabilities = capabilities |
29 | 29 |
self.server_capabilities = None # yet |
30 | 30 |
self.id = None # session-id |
31 |
self.is_connected = False |
|
31 |
self.connected = False |
|
32 |
self.initialised = False |
|
32 | 33 |
self._q = Queue.Queue() |
33 |
|
|
34 |
def _make_hello(self): |
|
35 |
pass |
|
36 |
|
|
34 |
|
|
37 | 35 |
def _init(self, id, capabilities): |
38 | 36 |
self.id = id |
39 | 37 |
self.capabilities[SERVER] = capabilities |
40 |
self.is_connected = True |
|
38 |
self.initialised = True |
|
39 |
|
|
40 |
def _greet(self): |
|
41 |
self._q.add(make_hello()) |
|
41 | 42 |
|
42 | 43 |
@override |
43 | 44 |
def _close(self): |
44 | 45 |
raise NotImplementedError |
45 | 46 |
|
47 |
@override |
|
46 | 48 |
def connect(self): |
49 |
'call Session.connect() at the end' |
|
47 | 50 |
self._greet() |
48 | 51 |
Thread.start() |
49 | 52 |
|
50 | 53 |
def send(self, msg): |
51 |
if self.is_connected:
|
|
54 |
if self.connected and self.initialised:
|
|
52 | 55 |
self._q.add(msg) |
53 | 56 |
else: |
54 | 57 |
raise SessionError('Attempted to send message while not connected') |
... | ... | |
62 | 65 |
### Subject methods |
63 | 66 |
|
64 | 67 |
def add_listener(self, listener): |
65 |
if not self.is_connected:
|
|
68 |
if not self.initialised:
|
|
66 | 69 |
raise SessionError('Listeners may only be added after session initialisation') |
67 | 70 |
else: |
68 | 71 |
Subject.add_listner(self, listener) |
Also available in: Unified diff