/*********************************************************************/
/* */
/* AgentService Framework */
/* www.agentservice.it */
/* */
/* Copyright (C) 2007 l.i.d.o. - DIST, University of Genoa, Italy */
/* GNU Lesser General Public License */
/* */
/* This library is free software; you can redistribute it and/or */
/* modify it under the terms of the GNU Lesser General Public */
/* License as published by the Free Software Foundation, */
/* version 2.1 of the License. */
/* */
/* This library is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */
/* Lesser General Public License for more details. */
/* */
/* You should have received a copy of the GNU Lesser General Public */
/* License along with this library; if not, write to the */
/* Free Software Foundation, Inc., 59 Temple Place - Suite 330, */
/* Boston, MA 02111-1307, USA. */
/* */
/*********************************************************************/
using System;
using System.IO;
using System.Text;
using AgentService.Interop;
namespace AgentService.Platform
{
///
/// Interface IPlatformController. Gives access and
/// manages the platform.
///
public interface IPlatformController : ICommandContext
{
///
/// Gets access to the platform console sub-system.
///
IConsole Console
{
get;
}
/*
///
/// Gets the module controller reference.
///
IModuleController Modules
{
get;
}
///
/// Gets the service controller reference.
///
IServiceController Services
{
get;
}
#region Platform Related Members
///
/// Gets the platform state if the
/// Platform has been bound otherwise
/// it returns the PlatformState.Unknown
/// state
///
PlatformState PlatformState
{
get;
}
///
/// Gets the platform description, null if the
/// platform has not been bound
///
IPlatformDescription PlatformDescription
{
get;
}
#endregion
*/
///
/// Starts the AgentService platform, and puts it in the ready state.
///
void StartPlatform();
///
/// Makes the platform running, by acivating first the core agents and
/// then the user agents.
///
void RunPlatform();
///
/// Stops the platform and puts it into the ready state.
///
void StopPlatform();
///
/// Restarts the AgentService platform. Restart implies the shutdown and start.
///
void RestartPlatform();
///
/// Shuts down the AgentService platform.
///
void ShutdownPlatform();
///
/// Attaches a shell to the platform.
///
/// platform shell, if null the current shell is detached from the platform
void BindToInput(TextReader inputConsole);
///
/// Sets the output console for the AgentService platform.
///
/// Reference to the TextWriter object used as error console.
/// Reference to the TextWriter object used as main console.
/// Reference to the TextWriter object used by agents as console.
void BindToOutputs(TextWriter mainConsole, TextWriter errorConsole, TextWriter platformConsole);
///
/// Sets the output console for the AgentService platform.
///
/// reference to the TextWriter object used as error console
/// reference to the TextWriter object used as main console
/// reference to the RextWriter object used as warning console
/// reference to the TextWriter object used by agents as console
void BindToOutputs(TextWriter mainConsole, TextWriter errorConsole, TextWriter warningConsole, TextWriter platformConsole);
}
}