I tried what you said, as:
-----
class Event_1(event.EventBase):
def __init__(self):
super(Event_1, self).__init__()
self.msg = 'event 1'
class Hehe(app_manager.RyuApp):
def __init__(self):
super(Hehe, self).__init__()
self.register_observer(Event_1, self.name)
print 'my name is ', self.name
self.ping()
def ping(self):
self.send_event_to_observers(Event_1())
print 'pinging...'
@handler.set_ev_cls(Event_1)
def pong(self, event):
print 'Got ya', event.msg
-----
but after ping(), pong() is not triggered
2013/2/28 Isaku Yamahata <[email protected]>
> On Thu, Feb 28, 2013 at 04:13:36PM +0800, can. wrote:
> > Hi there,
> >
> > I'm trying to figure out ryu's event mechanism by sending and receiving
> an
> > event. Below is the test code I wrote:
> > ---------
> > from ryu.base import app_manager
> > from ryu.controller import event, handler
> >
> > class Hehe(app_manager.RyuApp):
> >
> > class Event_1(event.EventBase):
> > def __init__(self):
> > super(Hehe.Event_1, self).__init__()
> > self.msg = 'event 1'
> >
> > def __init__(self):
> > super(Hehe, self).__init__()
> > self.event = Hehe.Event_1()
> > self.register_observer(Hehe.Event_1, self.name)
> >
> > def ping(self):
> > self.send_event_to_observers(self.Event_1())
> > print 'pinging...'
> >
> > @handler.set_ev_cls(Hehe.Event_1)
> > def pong(self, event):
> > print 'Got ya', event.msg
> > ---------
> > I put the script in ryu/app, and ran it with "ryu-manager event.py".
> > But I got a NameError stating that "name 'Hehe' is not defined" in line
> > "@handler.set_ev_cls(Hehe.Event_1)".
> > What do I miss? I need some help about this minimal example of raising
> and
> > handling an event(especially a self-defined event).
> > Thank you in advance.
>
> When calling the decorator, @handler.set_ev_cls(Hehe.Event_1),
> the class Hehe isn't defined yet. It's being defined.
> the definition isn't finished yet So the referncing Hehe.Event_1 fails.
>
> Moving out Event_1 out of class Hehe would work, I guess.
>
> Class Event_1(event.EventBase):
> ...
>
> class Hehe(...):
> ...
> @handler.set_ev_class(Event_1)
> def pong(...)
>
>
> thanks,
>
>
>
> >
> > --
> > Best regards,
> > Can Zhang
>
> >
> ------------------------------------------------------------------------------
> > Everyone hates slow websites. So do we.
> > Make your web apps faster with AppDynamics
> > Download AppDynamics Lite for free today:
> > http://p.sf.net/sfu/appdyn_d2d_feb
> > _______________________________________________
> > Ryu-devel mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/ryu-devel
>
>
> --
> yamahata
>
--
iCan.
http://canX.me
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel