| Home | nevrax.com |
|
key_agent.hGo to the documentation of this file.00001
00007 /* Copyright, 2000 Nevrax Ltd.
00008 *
00009 * This file is part of NEVRAX NEL.
00010 * NEVRAX NEL is free software; you can redistribute it and/or modify
00011 * it under the terms of the GNU General Public License as published by
00012 * the Free Software Foundation; either version 2, or (at your option)
00013 * any later version.
00014
00015 * NEVRAX NEL is distributed in the hope that it will be useful, but
00016 * WITHOUT ANY WARRANTY; without even the implied warranty of
00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00018 * General Public License for more details.
00019
00020 * You should have received a copy of the GNU General Public License
00021 * along with NEVRAX NEL; see the file COPYING. If not, write to the
00022 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
00023 * MA 02111-1307, USA.
00024 */
00025
00026 #ifndef NL_KEY_AGENT_H
00027 #define NL_KEY_AGENT_H
00028 namespace NLAIAGENT
00029 {
00030 class IObjectIA;
00031
00032 struct CKeyAgent
00033 {
00034 CStringType Name;
00035 std::list<IBasicAgent *>::iterator Itr;
00036
00037 CKeyAgent(const CStringType &s, const std::list<IBasicAgent *>::iterator &i): Name(s), Itr(i)
00038 {
00039 }
00040
00041 CKeyAgent(const CKeyAgent &k):Name(k.Name), Itr(k.Itr)
00042 {
00043 }
00044
00045 CKeyAgent(const CStringType &s): Name(s)
00046 {
00047 }
00048
00049 bool operator < (const CKeyAgent &k) const
00050 {
00051 return (Name < k.Name);
00052 }
00053 };
00054
00055 struct CKeyObject
00056 {
00057 CStringType Name;
00058 IObjectIA *Obj;
00059
00060 CKeyObject(const CStringType &s, IObjectIA *i): Name(s), Obj(i)
00061 {
00062 Obj->incRef();
00063 }
00064
00065 CKeyObject(const CKeyObject &k):Name(k.Name), Obj(k.Obj)
00066 {
00067 Obj->incRef();
00068 }
00069
00070 CKeyObject(const CStringType &s): Name(s)
00071 {
00072 }
00073
00074 virtual ~CKeyObject()
00075 {
00076 Obj->release();
00077 }
00078
00079 const CKeyObject operator = (const CKeyObject &a)
00080 {
00081 Obj->release();
00082 Obj = a.Obj;
00083 Obj->incRef();
00084 return *this;
00085 }
00086
00087 bool operator < (const CKeyObject &k) const
00088 {
00089 return (Name < k.Name);
00090 }
00091 };
00092 }
00093 #endif
|
||||||||||||||||||||||||