/*********************************************************************/ /* */ /* 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 AgentService.Agent; using AgentService.Agent.Knowledge; using AgentService.Agent.Behaviour; using AgentService.Platform.AMS; namespace AgentService.Platform.MTS { /// /// Class MTSProxy. Acts as an instance proxy for a /// cross domain interaction with the MTS. /// public class MTSProxy : MarshalByRefObject, IMTSGateway { /// /// reference to the mts. /// private IMTSGateway mts; /// /// Constructs an MTS Agent for the given platform. /// /// Reference to the MTS public MTSProxy(IMTSGateway obj) { this.mts = obj; } /// /// Checks whether a queue has messages. /// /// agent identifier of the owner of the queue /// true if the queue has messages public bool HasMessages(AID aid) { return this.mts.HasMessages(aid); } /// /// Sends a message to an agent. /// /// message /// true if the message has been successfully sent public bool SendMessage(AgentMessage message) { return this.mts.SendMessage(message); } /* /// /// Receives a message pops it from the queue. /// /// agent identifier of the agent that owns the queue /// the first message available in the queue public AgentMessage ReceiveMessage(AID aid) { return this.mts.ReceiveMessage(aid); } /// /// Looks in the queue for a message. /// /// agent identifier of the agent that owns the queue /// the first message available in the queue public AgentMessage PeekMessage(AID aid) { return this.mts.PeekMessage(aid); } */ /// /// Retrieves all the messages and removes them from the queue. /// /// agent identifier of the agent that owns the queue /// message filter, set this parameter to null if you do not want to applay any filter /// max number or message to retrieve /// if true removes the message from the queue /// the collection of messages retrieved from the queue public AgentMessageCollection GetMessages(AID aid, MessageFilter filter, int max, bool bRemove) { return this.mts.GetMessages(aid, filter, max, bRemove); } /// /// Retrieves the first message satisfying the given conditions from the agent's queue. /// /// agent identifier of the agent that owns the queue /// message filter, set this parameter to null if you do not want to apply a filter /// if true removes the messages from the queue /// the collection of messages retrieved from the queue public AgentMessage GetMessage(AID aid, MessageFilter filter, bool bRemove) { AgentMessage message = null; message = this.mts.GetMessage(aid, filter, bRemove); return message; } /// /// Removes the given message from the queue. /// /// agent identifier of the agent that owns the queue /// message to be destroyed /// true if message is successfully removed public bool RemoveMessage(AID aid, AgentMessage message) { return this.mts.RemoveMessage(aid, message); } } }