/*********************************************************************/ /* */ /* 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; } }