Files
rdpy/rdpy/protocol/common/layer.py
2013-10-13 19:44:31 +02:00

46 lines
1.4 KiB
Python

'''
@author: sylvain
'''
class Layer(object):
'''
Network abstraction for protocol
Try as possible to divide user protocol in layer
default implementation is a transparent layer
'''
def __init__(self, presentation = None):
'''
Constructor
'''
#presentation layer higher layer in model
self._presentation = presentation
#transport layer under layer in model
self._transport = None
#auto set transport layer of own presentation layer
if not self._presentation is None:
self._presentation._transport = self
def connect(self):
'''
call when transport layer is connected
default is send connect event to presentation layer
'''
if not self._presentation is None:
self._presentation.connect()
def recv(self, data):
'''
signal that data is available for this layer
call by transport layer
default is to pass data to presentation layer
'''
if not self._presentation is None:
self._presentation.recv(data)
def write(self, data):
'''
classical use by presentation layer
write data for this layer
default pass data to transport layer
'''
if not self._transport is None:
self._transport.write(data)