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