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 |