/*********************************************************************/
/* */
/* 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.Platform.AMS;
namespace AgentService.Platform.Modules.Default
{
///
/// This class holds the messaging aspects linked to an agents:
/// - the message queue.
/// - the events raised by the ImprovedMessageModule.
///
public class QueueItemManager
{
///
/// The queue mapping
///
public MessageQueueMapping QueueMapping
{
set;
get;
}
///
/// Event raised when a new message is incoming.
///
public event IncomingMessage OnIncomingMessage;
///
/// Event raised when a conversation system message is incoming.
///
public event IncomingConversation OnIncomingConversation;
///
/// Event raised when a conversation message is incoming.
///
public event IncomingConversationMessage OnIncomingConversationMessage;
///
/// Constructs a new QueueItemManager object.
///
/// The message queue
public QueueItemManager(MessageQueueMapping queue)
{
this.QueueMapping = queue;
}
///
/// Raises an IncomingMessage event.
///
public void RaiseIncomingMessageEvent(AID aid)
{
IncomingMessage temp = this.OnIncomingMessage;
if (temp != null)
{
temp(this, new IncomingMessageEventArgs(aid));
}
}
///
/// Raises an RaiseIncomingConversation event.
///
public void RaiseIncomingConversationEvent(AID aid)
{
IncomingConversation temp = this.OnIncomingConversation;
if (temp != null)
{
temp(this, new IncomingConversationEventArgs(aid));
}
}
///
/// RaiseIncomingConversationMessage event
///
/// The conversation ID
public void RaiseIncomingConversationMessageEvent(string convId, AID aid)
{
IncomingConversationMessage temp = this.OnIncomingConversationMessage;
if (temp != null)
{
temp(this, new IncomingConversationMessageEventArgs(convId,aid));
}
}
}
}