MCPcopy Create free account
hub / github.com/NetSys/bess / __init__

Method __init__

pybess/module.py:42–76  ·  view source on GitHub ↗
(self, _do_not_create=False, **kwargs)

Source from the content-addressed store, hash-verified

40class Module(object):
41
42 def __init__(self, _do_not_create=False, **kwargs):
43 self.name = '<uninitialized>'
44 self.mclass = self.__class__.__name__
45
46 assert self.__class__.__name__ != 'Module', \
47 "Should not instantiate 'Module' directly"
48
49 if 'name' in kwargs:
50 name = kwargs['name']
51 del kwargs['name']
52 else:
53 name = None
54
55 if not _do_not_create:
56 # create an object
57 ret = self.bess.create_module(self.__class__.__name__, name,
58 self.choose_arg(None, kwargs))
59 self.name = ret.name
60 else:
61 # bind to a pre-existing object, check if it's real
62 assert name is not None, "Module should not be None"
63 info = self.bess.get_module_info(name)
64 assert self.mclass == info.mclass, "Module %s is not of % type" % (
65 name, self.mclass)
66 self.name = name
67
68 # add mclass-specific methods
69 cls = self.bess.get_mclass_info(self.__class__.__name__)
70 assert len(cls.cmds) == len(cls.cmd_args)
71 for i, cmd in enumerate(cls.cmds):
72 func = _callback_factory(self, cmd, cls.cmd_args[i])
73 setattr(self, cmd, types.MethodType(func, self))
74
75 self.ogate = None
76 self.igate = None
77
78 def __str__(self):
79 return '%s::%s' % (self.name, str(self.__class__.__name__))

Callers

nothing calls this directly

Calls 4

_callback_factoryFunction · 0.85
create_moduleMethod · 0.80
get_module_infoMethod · 0.80
get_mclass_infoMethod · 0.80

Tested by

no test coverage detected