/*********************************************************************/
/* */
/* 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.Reflection;
using AgentService.Platform.AMS;
using AgentService.Platform.MTS;
using AgentService.Platform.Modules;
namespace AgentService.Platform
{
///
/// Interface IModuleController. Manages the operation
/// with the modules exposed by the platform ocntroller.
///
public interface IModuleController
{
#region Storage
IModuleInfo[] GetInstalledModules(bool bAdditional);
///
/// Gets all the Assembly contained in the repository
///
/// List of assemblies
AssemblyName[] GetStoredAssemblies();
///
/// Gets the list of the stored AgentTemplate types
/// used to instantiate agents.
///
/// an array containing a AgentTemplateDescriptor object for each AgentTemplate
AgentTemplateDescriptor[] GetStoredAgentTemplates();
///
/// Gets the list of the stored Behaviour types
/// used to instantiate agents.
///
/// an array containing a BehaviourDescriptor object for each Behavoiur
BehaviourDescriptor[] GetStoredBehaviours();
///
/// Gets the list of the stored Knowledge types
/// used to instantiate agents.
///
/// an array containing a KnowledgeDescriptor object for each Knowledge
KnowledgeDescriptor[] GetStoredKnowledges();
///
/// Uploads an assembly to the platform's storage
///
/// path to the assembly
/// null if successfull a description of the error otherwise
IModuleError UpLoadAssembly(string asmPath, bool bReplaceIfExists);
///
/// Uploads an assembly to the platform's storage
///
/// path to the assembly
/// null if successfull a description of the error otherwise
IModuleError RemoveAssembly(string asmPath);
#endregion
#region Logging
///
/// Gets the log file of an agent.
///
/// AID identifing the agent
/// content of the log
string GetLogFile(AID aid);
#endregion
#region Messaging
///
/// Gets a collection of filtered messages
///
/// aid of the agent
/// filter criteria
/// list of filtered messages
AgentMessageCollection FilterMessage(AID aid, MessageFilter filter);
///
/// Clears all the messages in the storage.
///
void ClearAllMessages();
///
/// Clears all the messages in the storage for a given agent.
///
/// AID identifing the agent
/// true, if the process is successful
bool ClearAllMessages(AID aid);
#endregion
}
}