/* * FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application - mod_managed * Copyright (C) 2008, Michael Giagnocavo * * Version: MPL 1.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application - mod_managed * * The Initial Developer of the Original Code is * Michael Giagnocavo * Portions created by the Initial Developer are Copyright (C) * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Michael Giagnocavo * Jeff Lenk * * PluginInterfaces.cs -- Public interfaces for plugins * */ using System; using System.Collections.Generic; using System.Linq; namespace FreeSWITCH { public class AppContext { readonly string arguments; readonly Native.ManagedSession session; public AppContext(string arguments, Native.ManagedSession session) { this.arguments = arguments; this.session = session; } public string Arguments { get { return arguments; } } public Native.ManagedSession Session { get { return session; } } } public class ApiContext { readonly string arguments; readonly Native.Stream stream; readonly Native.Event evt; public ApiContext(string arguments, Native.Stream stream, Native.Event evt) { this.arguments = arguments; this.stream = stream; this.evt = evt; } public string Arguments { get { return arguments; } } public Native.Stream Stream { get { return stream; } } public Native.Event Event { get { return evt; } } } public class ApiBackgroundContext { readonly string arguments; public ApiBackgroundContext(string arguments) { this.arguments = arguments; } public string Arguments { get { return arguments; } } } public interface IApiPlugin { void Execute(ApiContext context); void ExecuteBackground(ApiBackgroundContext context); } public interface IAppPlugin { void Run(AppContext context); } public interface ILoadNotificationPlugin { bool Load(); } }