merge with HEAD
This commit is contained in:
@@ -13,6 +13,14 @@ def register_types(module):
|
||||
module.add_class('DataRate')
|
||||
## packet.h: ns3::Packet [class]
|
||||
module.add_class('Packet', memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
|
||||
## packet-metadata.h: ns3::PacketMetadata [class]
|
||||
module.add_class('PacketMetadata')
|
||||
## packet-metadata.h: ns3::PacketMetadata::Item [struct]
|
||||
module.add_class('Item', outer_class=root_module['ns3::PacketMetadata'])
|
||||
## packet-metadata.h: ns3::PacketMetadata::Item [enumeration]
|
||||
module.add_enum('', ['PAYLOAD', 'HEADER', 'TRAILER'], outer_class=root_module['ns3::PacketMetadata::Item'])
|
||||
## packet-metadata.h: ns3::PacketMetadata::ItemIterator [class]
|
||||
module.add_class('ItemIterator', outer_class=root_module['ns3::PacketMetadata'])
|
||||
## tag.h: ns3::Tag [class]
|
||||
module.add_class('Tag', parent=root_module['ns3::ObjectBase'])
|
||||
## tag-buffer.h: ns3::TagBuffer [class]
|
||||
@@ -91,6 +99,9 @@ def register_methods(root_module):
|
||||
register_Ns3BufferIterator_methods(root_module, root_module['ns3::Buffer::Iterator'])
|
||||
register_Ns3DataRate_methods(root_module, root_module['ns3::DataRate'])
|
||||
register_Ns3Packet_methods(root_module, root_module['ns3::Packet'])
|
||||
register_Ns3PacketMetadata_methods(root_module, root_module['ns3::PacketMetadata'])
|
||||
register_Ns3PacketMetadataItem_methods(root_module, root_module['ns3::PacketMetadata::Item'])
|
||||
register_Ns3PacketMetadataItemIterator_methods(root_module, root_module['ns3::PacketMetadata::ItemIterator'])
|
||||
register_Ns3Tag_methods(root_module, root_module['ns3::Tag'])
|
||||
register_Ns3TagBuffer_methods(root_module, root_module['ns3::TagBuffer'])
|
||||
register_Ns3TagIterator_methods(root_module, root_module['ns3::TagIterator'])
|
||||
@@ -489,6 +500,119 @@ def register_Ns3Packet_methods(root_module, cls):
|
||||
is_const=True)
|
||||
return
|
||||
|
||||
def register_Ns3PacketMetadata_methods(root_module, cls):
|
||||
## packet-metadata.h: static void ns3::PacketMetadata::Enable() [member function]
|
||||
cls.add_method('Enable',
|
||||
'void',
|
||||
[],
|
||||
is_static=True)
|
||||
## packet-metadata.h: static void ns3::PacketMetadata::EnableChecking() [member function]
|
||||
cls.add_method('EnableChecking',
|
||||
'void',
|
||||
[],
|
||||
is_static=True)
|
||||
## packet-metadata.h: ns3::PacketMetadata::PacketMetadata(uint32_t uid, uint32_t size) [constructor]
|
||||
cls.add_constructor([param('uint32_t', 'uid'), param('uint32_t', 'size')])
|
||||
## packet-metadata.h: ns3::PacketMetadata::PacketMetadata(ns3::PacketMetadata const & o) [copy constructor]
|
||||
cls.add_constructor([param('ns3::PacketMetadata const &', 'o')])
|
||||
## packet-metadata.h: void ns3::PacketMetadata::AddHeader(ns3::Header const & header, uint32_t size) [member function]
|
||||
cls.add_method('AddHeader',
|
||||
'void',
|
||||
[param('ns3::Header const &', 'header'), param('uint32_t', 'size')])
|
||||
## packet-metadata.h: void ns3::PacketMetadata::RemoveHeader(ns3::Header const & header, uint32_t size) [member function]
|
||||
cls.add_method('RemoveHeader',
|
||||
'void',
|
||||
[param('ns3::Header const &', 'header'), param('uint32_t', 'size')])
|
||||
## packet-metadata.h: void ns3::PacketMetadata::AddTrailer(ns3::Trailer const & trailer, uint32_t size) [member function]
|
||||
cls.add_method('AddTrailer',
|
||||
'void',
|
||||
[param('ns3::Trailer const &', 'trailer'), param('uint32_t', 'size')])
|
||||
## packet-metadata.h: void ns3::PacketMetadata::RemoveTrailer(ns3::Trailer const & trailer, uint32_t size) [member function]
|
||||
cls.add_method('RemoveTrailer',
|
||||
'void',
|
||||
[param('ns3::Trailer const &', 'trailer'), param('uint32_t', 'size')])
|
||||
## packet-metadata.h: ns3::PacketMetadata ns3::PacketMetadata::CreateFragment(uint32_t start, uint32_t end) const [member function]
|
||||
cls.add_method('CreateFragment',
|
||||
'ns3::PacketMetadata',
|
||||
[param('uint32_t', 'start'), param('uint32_t', 'end')],
|
||||
is_const=True)
|
||||
## packet-metadata.h: void ns3::PacketMetadata::AddAtEnd(ns3::PacketMetadata const & o) [member function]
|
||||
cls.add_method('AddAtEnd',
|
||||
'void',
|
||||
[param('ns3::PacketMetadata const &', 'o')])
|
||||
## packet-metadata.h: void ns3::PacketMetadata::AddPaddingAtEnd(uint32_t end) [member function]
|
||||
cls.add_method('AddPaddingAtEnd',
|
||||
'void',
|
||||
[param('uint32_t', 'end')])
|
||||
## packet-metadata.h: void ns3::PacketMetadata::RemoveAtStart(uint32_t start) [member function]
|
||||
cls.add_method('RemoveAtStart',
|
||||
'void',
|
||||
[param('uint32_t', 'start')])
|
||||
## packet-metadata.h: void ns3::PacketMetadata::RemoveAtEnd(uint32_t end) [member function]
|
||||
cls.add_method('RemoveAtEnd',
|
||||
'void',
|
||||
[param('uint32_t', 'end')])
|
||||
## packet-metadata.h: uint32_t ns3::PacketMetadata::GetUid() const [member function]
|
||||
cls.add_method('GetUid',
|
||||
'uint32_t',
|
||||
[],
|
||||
is_const=True)
|
||||
## packet-metadata.h: uint32_t ns3::PacketMetadata::GetSerializedSize() const [member function]
|
||||
cls.add_method('GetSerializedSize',
|
||||
'uint32_t',
|
||||
[],
|
||||
is_const=True)
|
||||
## packet-metadata.h: void ns3::PacketMetadata::Serialize(ns3::Buffer::Iterator i, uint32_t size) const [member function]
|
||||
cls.add_method('Serialize',
|
||||
'void',
|
||||
[param('ns3::Buffer::Iterator', 'i'), param('uint32_t', 'size')],
|
||||
is_const=True)
|
||||
## packet-metadata.h: uint32_t ns3::PacketMetadata::Deserialize(ns3::Buffer::Iterator i) [member function]
|
||||
cls.add_method('Deserialize',
|
||||
'uint32_t',
|
||||
[param('ns3::Buffer::Iterator', 'i')])
|
||||
## packet-metadata.h: ns3::PacketMetadata::ItemIterator ns3::PacketMetadata::BeginItem(ns3::Buffer buffer) const [member function]
|
||||
cls.add_method('BeginItem',
|
||||
'ns3::PacketMetadata::ItemIterator',
|
||||
[param('ns3::Buffer', 'buffer')],
|
||||
is_const=True)
|
||||
return
|
||||
|
||||
def register_Ns3PacketMetadataItem_methods(root_module, cls):
|
||||
## packet-metadata.h: ns3::PacketMetadata::Item::isFragment [variable]
|
||||
cls.add_instance_attribute('isFragment', 'bool', is_const=False)
|
||||
## packet-metadata.h: ns3::PacketMetadata::Item::tid [variable]
|
||||
cls.add_instance_attribute('tid', 'ns3::TypeId', is_const=False)
|
||||
## packet-metadata.h: ns3::PacketMetadata::Item::currentSize [variable]
|
||||
cls.add_instance_attribute('currentSize', 'uint32_t', is_const=False)
|
||||
## packet-metadata.h: ns3::PacketMetadata::Item::currentTrimedFromStart [variable]
|
||||
cls.add_instance_attribute('currentTrimedFromStart', 'uint32_t', is_const=False)
|
||||
## packet-metadata.h: ns3::PacketMetadata::Item::currentTrimedFromEnd [variable]
|
||||
cls.add_instance_attribute('currentTrimedFromEnd', 'uint32_t', is_const=False)
|
||||
## packet-metadata.h: ns3::PacketMetadata::Item::current [variable]
|
||||
cls.add_instance_attribute('current', 'ns3::Buffer::Iterator', is_const=False)
|
||||
## packet-metadata.h: ns3::PacketMetadata::Item::Item(ns3::PacketMetadata::Item const & arg0) [copy constructor]
|
||||
cls.add_constructor([param('ns3::PacketMetadata::Item const &', 'arg0')])
|
||||
## packet-metadata.h: ns3::PacketMetadata::Item::Item() [constructor]
|
||||
cls.add_constructor([])
|
||||
return
|
||||
|
||||
def register_Ns3PacketMetadataItemIterator_methods(root_module, cls):
|
||||
## packet-metadata.h: ns3::PacketMetadata::ItemIterator::ItemIterator(ns3::PacketMetadata::ItemIterator const & arg0) [copy constructor]
|
||||
cls.add_constructor([param('ns3::PacketMetadata::ItemIterator const &', 'arg0')])
|
||||
## packet-metadata.h: ns3::PacketMetadata::ItemIterator::ItemIterator(ns3::PacketMetadata const * metadata, ns3::Buffer buffer) [constructor]
|
||||
cls.add_constructor([param('ns3::PacketMetadata const *', 'metadata'), param('ns3::Buffer', 'buffer')])
|
||||
## packet-metadata.h: bool ns3::PacketMetadata::ItemIterator::HasNext() const [member function]
|
||||
cls.add_method('HasNext',
|
||||
'bool',
|
||||
[],
|
||||
is_const=True)
|
||||
## packet-metadata.h: ns3::PacketMetadata::Item ns3::PacketMetadata::ItemIterator::Next() [member function]
|
||||
cls.add_method('Next',
|
||||
'ns3::PacketMetadata::Item',
|
||||
[])
|
||||
return
|
||||
|
||||
def register_Ns3Tag_methods(root_module, cls):
|
||||
## tag.h: ns3::Tag::Tag(ns3::Tag const & arg0) [copy constructor]
|
||||
cls.add_constructor([param('ns3::Tag const &', 'arg0')])
|
||||
|
||||
@@ -945,11 +945,6 @@ def register_Ns3TypeId_methods(root_module, cls):
|
||||
'ns3::TypeId',
|
||||
[param('std::string', 'name')],
|
||||
is_static=True)
|
||||
## type-id.h: static bool ns3::TypeId::LookupByNameFailSafe(std::string name, ns3::TypeId * tid) [member function]
|
||||
cls.add_method('LookupByNameFailSafe',
|
||||
'bool',
|
||||
[param('std::string', 'name'), param('ns3::TypeId *', 'tid', transfer_ownership=False)],
|
||||
is_static=True)
|
||||
## type-id.h: ns3::Ptr<ns3::TraceSourceAccessor const> ns3::TypeId::LookupTraceSourceByName(std::string name) const [member function]
|
||||
cls.add_method('LookupTraceSourceByName',
|
||||
'ns3::Ptr< ns3::TraceSourceAccessor const >',
|
||||
|
||||
@@ -188,3 +188,35 @@ error:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
PyObject *
|
||||
_wrap_TypeId_LookupByNameFailSafe(PyNs3TypeId *PYBINDGEN_UNUSED(dummy), PyObject *args, PyObject *kwargs,
|
||||
PyObject **return_exception)
|
||||
{
|
||||
bool ok;
|
||||
const char *name;
|
||||
Py_ssize_t name_len;
|
||||
ns3::TypeId tid;
|
||||
PyNs3TypeId *py_tid;
|
||||
const char *keywords[] = {"name", NULL};
|
||||
|
||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs, (char *) "s#", (char **) keywords, &name, &name_len)) {
|
||||
PyObject *exc_type, *traceback;
|
||||
PyErr_Fetch(&exc_type, return_exception, &traceback);
|
||||
Py_XDECREF(exc_type);
|
||||
Py_XDECREF(traceback);
|
||||
return NULL;
|
||||
}
|
||||
ok = ns3::TypeId::LookupByNameFailSafe(std::string(name, name_len), &tid);
|
||||
if (!ok)
|
||||
{
|
||||
PyErr_Format(PyExc_KeyError, "The ns3 type with name `%s' is not registered", name);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
py_tid = PyObject_New(PyNs3TypeId, &PyNs3TypeId_Type);
|
||||
py_tid->obj = new ns3::TypeId (tid);
|
||||
PyNs3TypeId_wrapper_registry[(void *) py_tid->obj] = (PyObject *) py_tid;
|
||||
|
||||
return (PyObject *) py_tid;
|
||||
}
|
||||
|
||||
@@ -85,6 +85,7 @@ def main():
|
||||
|
||||
ns3modulegen_core_customizations.Simulator_customizations(root_module)
|
||||
ns3modulegen_core_customizations.CommandLine_customizations(root_module)
|
||||
ns3modulegen_core_customizations.TypeId_customizations(root_module)
|
||||
|
||||
|
||||
for local_module in LOCAL_MODULES:
|
||||
|
||||
@@ -517,3 +517,10 @@ def Attribute_customizations(module):
|
||||
and param.default_value_type is None:
|
||||
param.default_value_type = 'ns3::EmptyAttributeValue'
|
||||
|
||||
|
||||
def TypeId_customizations(module):
|
||||
TypeId = module['ns3::TypeId']
|
||||
TypeId.add_custom_method_wrapper("LookupByNameFailSafe", "_wrap_TypeId_LookupByNameFailSafe",
|
||||
flags=["METH_VARARGS", "METH_KEYWORDS", "METH_STATIC"])
|
||||
|
||||
|
||||
|
||||
@@ -48,9 +48,6 @@ type_annotations = {
|
||||
'decref_method': 'Unref',
|
||||
'peekref_method': 'GetReferenceCount',
|
||||
},
|
||||
'::ns3::PacketMetadata': {
|
||||
'ignore': None,
|
||||
},
|
||||
'::ns3::AttributeChecker': {
|
||||
'automatic_type_narrowing': 'true',
|
||||
'allow_subclassing': 'false',
|
||||
@@ -73,7 +70,7 @@ type_annotations = {
|
||||
'params': {'info':{'transfer_ownership': 'false'}}
|
||||
},
|
||||
'static bool ns3::TypeId::LookupByNameFailSafe(std::string name, ns3::TypeId * tid) [member function]': {
|
||||
'params': {'tid': {'transfer_ownership': 'false'}}
|
||||
'ignore': None, # manually wrapped in
|
||||
},
|
||||
'bool ns3::TraceSourceAccessor::ConnectWithoutContext(ns3::ObjectBase * obj, ns3::CallbackBase const & cb) const [member function]': {
|
||||
'params': {'obj': {'transfer_ownership':'false'}}
|
||||
|
||||
@@ -22,7 +22,7 @@ else:
|
||||
os.environ['PYTHONPATH'] = LOCAL_PYBINDGEN_PATH
|
||||
|
||||
## https://launchpad.net/pybindgen/
|
||||
REQUIRED_PYBINDGEN_VERSION = (0, 9, 0, 598)
|
||||
REQUIRED_PYBINDGEN_VERSION = (0, 9, 0, 600)
|
||||
REQUIRED_PYGCCXML_VERSION = (0, 9, 5)
|
||||
|
||||
|
||||
|
||||
@@ -157,8 +157,6 @@ public:
|
||||
void Serialize (Buffer::Iterator i, uint32_t size) const;
|
||||
uint32_t Deserialize (Buffer::Iterator i);
|
||||
|
||||
static void PrintStats (void);
|
||||
|
||||
ItemIterator BeginItem (Buffer buffer) const;
|
||||
|
||||
private:
|
||||
|
||||
@@ -118,5 +118,11 @@ class TestSimulator(unittest.TestCase):
|
||||
|
||||
self.assert_(c1 is c2)
|
||||
|
||||
def testTypeId(self):
|
||||
typeId1 = ns3.TypeId.LookupByNameFailSafe("ns3::UdpSocketFactory")
|
||||
self.assertEqual(typeId1.GetName (), "ns3::UdpSocketFactory")
|
||||
|
||||
self.assertRaises(KeyError, ns3.TypeId.LookupByNameFailSafe, "__InvalidTypeName__")
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user