Package lacewing :: Module baseloader
[frames] | no frames]

Source Code for Module lacewing.baseloader

1 -class _BaseLoader(object):
2 """ 3 The base class for all packetloaders. 4 """ 5
6 - def __init__(self, data = None, **settings):
7 """ 8 @type data: str or buffer 9 @param settings: Settings set for this packetloader 10 """ 11 self.settings = settings 12 self.initialize() 13 if data is not None: 14 self.read(data)
15
16 - def new(self, loaderClass, *arg, **kw):
17 """ 18 Creates a new loader from loaderClass and passes the 19 current settings to it 20 21 @type loaderClass: _BaseLoader 22 """ 23 kw.update(self.settings) 24 kw['parent'] = self 25 newLoader = loaderClass(*arg, **kw) 26 return newLoader
27
28 - def initialize(self):
29 """ 30 Initializer for this loader 31 """
32
33 - def read(self, data):
34 """ 35 Parses 'data' and sets the properties of the 36 packetloader. 37 @type data: str or buffer 38 """ 39 raise NotImplementedError('read() method not implemented (%s)' % self.__class__)
40
41 - def generate(self):
42 """ 43 Generate the raw representation of the packetloader. 44 """ 45 raise NotImplementedError('generate() method not implemented')
46
47 -class _EmptyLoader(_BaseLoader):
48 - def read(self, data):
49 pass
50
51 - def generate(self):
52 return ''
53