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

Reply via email to