The vrrp patch series would be a good example.
http://thread.gmane.org/gmane.network.ryu.devel/2557

thanks,


On Wed, Jun 12, 2013 at 04:18:17PM +0200, Philipp Aeschlimann wrote:
> Hey there
> 
> Whats the right way to implement a custom-Event between two app's?
> That's the way I have done this:
> 
> ### file: ryu/app/app_one.py ###
> import ryu.app.AppOne
> ...
> 
> class EventAppOne(event.EventBase):
>     def __init__ ...
>         ...
> 
> class AppOne(app_manager.RyuApp):
>     def __init__ ...
>         ...
>     def foo(self, dp):
>         self.send_event_to_observers(ryu.app.AppOne.EventAppOne(dp))
> 
> ### file: ryu/app/app_two.py ###
> from ryu.app import AppOne
> ...
> 
> class AppTwo(app_manager.RyuApp):
>     def __init__ ...
>         ...
>     @set_ev_cls(AppOne.EventAppOne)
>     def bar(self, ev):
>         ...
> 
> The Problem is in the app_manager.py (or I do not understand how to
> implement events is the reason...) in the method:
> 
>     def get_observers(self, ev, state):
>         observers = []
>         for k, v in self.observers.get(ev.__class__, {}).iteritems():
>             if not state or not v or state in v:
>                 observers.append(k)
> 
> If you send the event to the oveservers as follows:
> 
> self.send_event_to_observers(EventAppOne(dp))
> 
> then the attribute ev.__class__ in def get_observers(self, ev, state)
> contains the key "AppOne.EventAppOne" but in the observers dict is the
> key "ryu.app.AppOne.EventAppOne". So the event is not thrown.
> 
> If you send the event like this (and described before):
> 
> self.send_event_to_observers(ryu.app.AppOne.EventAppOne(dp))
> 
> then the attribute ev.__class__ in def get_observers(self, ev, state)
> contains the right value that is "ryu.app.AppOne.EventAppOne" which is
> the same as the key in observers dict and the event is thrown.
> 
> I hope I explained it correctly.
> 
> g *pae
> 
> --
> ZHAW - Zurich University of Applied Sciences
> Institute of Applied Information Technology InIT
> InIT Cloud Computing Laboratory ICCLab
> 
> Philipp Aeschlimann
> Researcher
> Obere Kirchgasse 2
> CH-8401 Winterthur
> 
> Tel. +41 58 934 6964 (intern 6964)
> mailto:[email protected]
> www.zhaw.ch
> www.cloudcomp.ch
> 
> GPG IDKey: 647E122E
> Fingerprint: 47B7 8D8A 98D1 E91D 4B7C E261 D88C BE9E 647E 122E
> 
> ------------------------------------------------------------------------------
> This SF.net email is sponsored by Windows:
> 
> Build for Windows Store.
> 
> http://p.sf.net/sfu/windows-dev2dev
> _______________________________________________
> Ryu-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/ryu-devel
> 

-- 
yamahata

------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to