hi,

> 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...'

you can't send an event in __init__.  it's too early.

YAMAMOTO Takashi

> 
>     @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