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