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

Source Code for Module lacewing.baseloader

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