/*********************************************************************/
/* */
/* 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.Collections.Generic;
using System.Text;
using AgentService.Interface;
namespace AgentService.Platform.MTS
{
///
/// Interface IMTSGateway. Defines the common operation that are
/// directly accessible from the messaging clients on each agent.
///
public interface IMTSGateway
{
///
/// Checks whether a queue has messages.
///
/// agent identifier of the owner of the queue
/// true if the queue has messages
bool HasMessages(IAID aid);
///
/// Sends a message to an agent.
///
/// message
/// true if the message has been successfully sent
bool SendMessage(IAgentMessage 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
IAgentMessage ReceiveMessage(IAID aid);
///
/// Looks in the queue for a message.
///
/// agent identifier of the agent that owns the queue
/// the first message available in the queue
IAgentMessage PeekMessage(IAID aid);
///
/// Retrieves all the messages and removes them from the queue.
///
/// agent identifier of the agent that owns the queue
/// the collection of messages retrieved from the queue
IAgentMessageCollection GetAllMessages(IAID aid);
///
/// 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
bool RemoveMessage(IAID aid, IAgentMessage message);
}
}