Oh, I see... all those years wasted doing java stuff! :D On Tue, Sep 8, 2009 at 22:46, Michael Giagnocavo <[email protected]> wrote:
> “ ThreadPool.QueueUserWorkItem((o) =>” > > That starts a lambda, which is compiled to a delegate, same as anonymous > methods. > > Guess I’ll wait for him to respond on the crash he gets. > > > > > > *From:* [email protected] [mailto: > [email protected]] *On Behalf Of *Raffaele P. > Guidi > *Sent:* Tuesday, September 08, 2009 12:22 PM > > *To:* [email protected] > *Subject:* Re: [Freeswitch-users] Subscribing to events in managed C# / > .NET > > > > Well, I can't see any delegate in josh sample, just a > ThreadPool.QueueUserWorkItem. Here is an example that, at least on my > system (I reached my home pc in the meanwhile), works fine. > > > > public class LoadPluginDemo : ILoadNotificationPlugin { > > delegate void Listener(); > > private void EventListener() { > > EventConsumer con = new EventConsumer("all", null); > > while (true){ > > Event ev = con.pop(1); > > Log.WriteLine(LogLevel.Notice, "Got event " + > ev.GetHeader("Event-Name")); > > } > > } > > public bool Load() { > > Log.WriteLine(LogLevel.Notice, "LoadDemo running."); > > new Listener(EventListener).BeginInvoke(null,null); > > return true; > > } > > } > > > > > > > > On Tue, Sep 8, 2009 at 18:43, Michael Giagnocavo <[email protected]> > wrote: > > That’s what his sample does, but he says it crashes. > > > > *From:* [email protected] [mailto: > [email protected]] *On Behalf Of *Raffaele P. > Guidi > *Sent:* Tuesday, September 08, 2009 10:08 AM > > > *To:* [email protected] > *Subject:* Re: [Freeswitch-users] Subscribing to events in managed C# / > .NET > > > > Hi, you just have to use delegates to asynchronously call the function > containing the loop and return back the control to the calling thread. Here > an example (don't have my code at hand, hope it doesn't contain typos). > > > > Regards, > > Raffaele > > > > public class TestLoop : ILoadNotificationPlugin > > { > > > > Delegate void DoStuffDelegate(); > > > > public void doStuff() > > { > > EventConsumer con = new EventConsumer("all", ""); > > while (true) > > { > > Event ev = con.pop(0); > > Log.WriteLine(LogLevel.Notice, "Event: " + > ev.serialized_string); > > freeswitch.msleep(100); > > } > > } > > public bool Load() > > { > > DoStuffDelegate dsdlg = new DoStuffDelegate(doStuff); > > dsdlg.BeginInvoke(); > > } > > } > > On Tue, Sep 8, 2009 at 08:21, Josh Rivers <[email protected]> wrote: > > Thanks for the response! > > > > I have tried putting a long-running loop here, but then it blocks anything > else managed from happening: > > > > public class TestLoop : ILoadNotificationPlugin > > { > > public bool Load() > > { > > EventConsumer con = new EventConsumer("all", ""); > > while (true) > > { > > Event ev = con.pop(0); > > Log.WriteLine(LogLevel.Notice, "Event: " + > ev.serialized_string); > > freeswitch.msleep(100); > > } > > } > > } > > > > However, if I fork off a thread here, freeswitch crashes: > > public class TestLoop : ILoadNotificationPlugin > > { > > public bool Load() > > { > > ThreadPool.QueueUserWorkItem((o) => > > { > > Log.WriteLine(LogLevel.Notice, "Thread Starting. "); > > EventConsumer con = new EventConsumer("all", ""); > > while (true) > > { > > Event ev = con.pop(0); > > Log.WriteLine(LogLevel.Notice, "Event: " + > ev.serialized_string); > > freeswitch.msleep(100); > > } > > }); > > return true; > > } > > } > > > > It doesn't look like this is a good place to start a long-running process? > > > > Thanks! > > Josh > > > > On Mon, Sep 7, 2009 at 11:05 PM, Raffaele P. Guidi < > [email protected]> wrote: > > Yes! > > > > public class LoadDemo : ILoadNotificationPlugin { > > public bool Load() { > > Log.WriteLine(LogLevel.Notice, "LoadDemo running."); > > return true; > > } > > } > > > > this example is from Michael Giagnocavo's Demo.csx which you can find into > the mod_managed svn. > > > > And let me add that works like a charm :) > > > > Ciao, > > Raffaele > > > > On Sun, Sep 6, 2009 at 22:50, Josh Rivers <[email protected]> wrote: > > Is there a way to start this when FreeSWITCH starts? The lua and perl > modules have a 'startup-script' configuration preference. Is there something > similar in mod_managed? Or is there a way to have an api command executed at > a startup? > > > > <quote author="Phillip Jones"> > > Exactly what I was after - thank you! > > > > On Thu, Sep 3, 2009 at 1:54 PM, Jeff Lenk <[email protected]> wrote: > > > > > > > > try something like this > > > > > > EventConsumer con = new EventConsumer("all", ""); > > > Event ev = con.pop(0); > > > > > > see lua sample - > > > http://wiki.freeswitch.org/wiki/Lua#freeswitch.EventConsumer > > > > > > > > > Phillip Jones-2 wrote: > > > > > > > > Hi there, > > > > > > > > mod_managed exposes EventReceivedFunction such that: > > > > > > > > Session.EventReceivedFunction = (e) => > > > > { > > > > Log.WriteLine(LogLevel.Alert, "Received Event {0}", > e.ToString()); > > > > return ""; > > > > }; > > > > > > > > should trap all events to which i subscribe. > > > > > > > > > > > > But how do I subscribe to events? What is the .NET / managed equivalent > > > > of: > > > > > > > > switch_event_bind(const char *id, switch_event_types_t event, const > char > > > > *subclass_name, switch_event_callback_t callback, void *user_data); > > > > > > > > > > > > > > > > Thank you! > > > > > > > > > > > > > > > > _______________________________________________ > FreeSWITCH-users mailing list > [email protected] > http://lists.freeswitch.org/mailman/listinfo/freeswitch-users > UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users > http://www.freeswitch.org > > > > > _______________________________________________ > FreeSWITCH-users mailing list > [email protected] > http://lists.freeswitch.org/mailman/listinfo/freeswitch-users > UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users > http://www.freeswitch.org > > > > > _______________________________________________ > FreeSWITCH-users mailing list > [email protected] > http://lists.freeswitch.org/mailman/listinfo/freeswitch-users > UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users > http://www.freeswitch.org > > > > > _______________________________________________ > FreeSWITCH-users mailing list > [email protected] > http://lists.freeswitch.org/mailman/listinfo/freeswitch-users > UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users > http://www.freeswitch.org > > > > _______________________________________________ > FreeSWITCH-users mailing list > [email protected] > http://lists.freeswitch.org/mailman/listinfo/freeswitch-users > UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users > http://www.freeswitch.org > >
_______________________________________________ FreeSWITCH-users mailing list [email protected] http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
