/*********************************************************************/
/* */
/* 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;
namespace AgentService.Platform.Modules
{
///
/// Delegate MobilityEventHandler. Call-back signature for
/// methods used to handle messages sent to core agents.
///
public delegate void MobilityEventHandler(AgentPersistent persistedAgent, int ticket);
///
/// Interface IMobilityModule. Defines the
/// basic functionalities that a mobility module
/// must implement in order to be plugged
/// into the AgentService platform
///
public interface IMobilityModule
{
///
/// Move an agent from the local platform to the given platform
///
/// Profile of the agent to move
/// Persisted version of the agent to move
/// Name of the destination platform
/// True if the transfer is successfull, false otherwise
bool MoveAgent (AgentService.Agent.AgentProfile profile, AgentService.Agent.AgentPersistent agentPersisted, string destinationPlatform);
///
/// Raises every time an agent is successfully received. Use null
/// for the persistedAgent parameter if the transfer isn't succesfull
///
event MobilityEventHandler agentTransferred;
}
}