On Thu, 05 Dec 2013 17:22:39 +0900
Yuichi Ito <[email protected]> wrote:

> 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 alreadly.
> 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 <[email protected]>
> ---
>  ryu/lib/packet/packet_base.py |   12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/ryu/lib/packet/packet_base.py b/ryu/lib/packet/packet_base.py
> index cbc213f..71a9d2d 100644
> --- a/ryu/lib/packet/packet_base.py
> +++ b/ryu/lib/packet/packet_base.py
> @@ -17,7 +17,17 @@ import abc
>  from ryu.lib import stringify
> 
> 
> -class PacketBase(stringify.StringifyMixin):
> +class StringifyMixin(stringify.StringifyMixin):

Please add this to stringify.StringifyMixin instead of creating new
one.

> +    @classmethod
> +    def set_classes(cls, registed_dict):
> +        cls._class_prefixes = []

Why initialized again here?

> +        for cls_ in registed_dict.values():
> +            cls._class_prefixes.append(cls_.__name__)
> +        cls._class_prefixes = sorted(set(cls._class_prefixes))

Why needs to sort? Also why set? Avoiding duplication?

Can we do more simpler like:

        cls._class_prefixes.extend([v.__name__ for v in
                                    registered_dict.values()])

?

> +class PacketBase(StringifyMixin):
>      """A base class for a protocol (ethernet, ipv4, ...) header."""
>      __metaclass__ = abc.ABCMeta
>      _TYPES = {}
> --
> 1.7.10.4
> 
> 
> ------------------------------------------------------------------------------
> Sponsored by Intel(R) XDK 
> Develop, test and display web and hybrid apps with a single code base.
> Download it for free now!
> http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg.clktrk
> _______________________________________________
> Ryu-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/ryu-devel

------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to