};\r
return del;\r
}\r
+\r
+ /// <summary>Wraps a nice handler into a delegate suitable for reverse P/Invoke. For native api using</summary>\r
+ public static switch_state_handler_t_delegate CreateStateHandlerDelegate(Action<ManagedSession> handler)\r
+ {\r
+ // We create a ManagedSession on top of the session so callbacks can use it "nicely"\r
+ // Then we sort of dispose it.\r
+ switch_state_handler_t_delegate del = ptr =>\r
+ {\r
+ using (var sess = new ManagedSession(new SWIGTYPE_p_switch_core_session(ptr, false)))\r
+ {\r
+ handler(sess);\r
+ return switch_status_t.SWITCH_STATUS_SUCCESS;\r
+ }\r
+ };\r
+ return del;\r
+ }\r
+\r
public static SWIGTYPE_p_f_p_switch_core_session__switch_status_t WrapStateHandlerDelegate(switch_state_handler_t_delegate del) {\r
return new SWIGTYPE_p_f_p_switch_core_session__switch_status_t(Marshal.GetFunctionPointerForDelegate(del), false);\r
}\r