/*********************************************************************/ /* */ /* 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.ServiceModel; namespace AgentService.Agent.Runtime { /// //// Interface IPersistenceClient. Defines the PersistKnowledge operation that /// can be used by the behaviour object to forse the persistence of a given /// knowledge. /// [ServiceContract] public interface IPersistenceClient : IRuntimeBindable { /// /// Persists a named knowledge of the agent. The implementation must /// aquire exclusive access to the knowledge and then persist it. /// Must throw an exception if the persistence operation fails. /// /// reference to the knoweldge object [OperationContract] void PersistKnowledge(AgentService.Agent.Knowledge.Knowledge knowledge); /// /// Persists a knowledge item of the a specified agent. /// /// name of the knowledge object that Contains the specified item. /// name of the item to persist. /// value of the item to persist. /// true if the item has been persisted successfully. [OperationContract] bool PersistKnowledgeItem(string kName, string iName, object iValue); } }