diff options
author | Yuichi Ito <ito.yuichi0@gmail.com> | 2013-12-12 15:30:56 +0900 |
---|---|---|
committer | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2013-12-12 18:21:50 +0900 |
commit | 3f9a902198dce92f9044f22f34a1b89ab618e29e (patch) | |
tree | 011a845141f61fc35806047489957cb0e5d370d2 | |
parent | 2eb4f4470fe8f029f8a202abdf49d515dfa2cc14 (diff) |
packet lib: packet_base: add a method which makes '_class_prefixes' easy to use
the variable '_class_prefixes' of stringify.StringifyMixin is used to help the method 'from_jsondict()' to create the class instance.
'_class_prefixes' requires a list of the class names.
some classes have another list of the class names already.
this patch adds a method which makes '_class_prefixes' by using the existing list.
before applying this patch:
(e.g. ryu.lib.packet.ipv6)
# append the name to another list
@ipv6.register_header_type(inet.IPPROTO_HOPOPTS)
class hop_opts(opt_header):
...
@ipv6.register_header_type(inet.IPPROTO_DSTOPTS)
class dst_opts(opt_header):
....
# append the name again
ipv6._class_prefixes = ['hop_opts', 'dst_opts', ...]
after applying this patch:
(e.g. ryu.lib.packet.ipv6)
# append the name to another list
@ipv6.register_header_type(inet.IPPROTO_HOPOPTS)
class hop_opts(opt_header):
...
@ipv6.register_header_type(inet.IPPROTO_DSTOPTS)
class dst_opts(opt_header):
....
# create the new list from another list
ipv6.set_classes(ipv6._IPV6_EXT_HEADER_TYPE)
Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
-rw-r--r-- | ryu/lib/stringify.py | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/ryu/lib/stringify.py b/ryu/lib/stringify.py index 4d56a950..ad771db9 100644 --- a/ryu/lib/stringify.py +++ b/ryu/lib/stringify.py @@ -298,6 +298,11 @@ class StringifyMixin(object): print "KWARG", kwargs raise + @classmethod + def set_classes(cls, registered_dict): + cls._class_prefixes.extend([v.__name__ for v in + registered_dict.values()]) + def obj_python_attrs(msg_): """iterate object attributes for stringify purposes |