Home | nevrax.com |
|
msg_group.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 #ifndef NL_IA_MSG_GROUP_H 00026 #define NL_IA_MSG_GROUP_H 00027 00028 namespace NLAIAGENT 00029 { 00030 00031 class IBasicMessageGroup : public NLAIC::IBasicInterface { 00032 00033 protected: 00034 public: 00035 00036 IBasicMessageGroup() 00037 { 00038 } 00039 00040 virtual bool operator==(const IBasicMessageGroup *grp) const = 0; 00041 virtual bool operator==(const IBasicMessageGroup &grp) const = 0; 00042 00043 virtual const sint32 &getId() const = 0; 00044 }; 00045 00046 class CMessageGroup : public IBasicMessageGroup 00047 { 00048 public: 00049 static CMessageGroup systemGroup; 00050 static CMessageGroup msgScriptingGroup; 00051 00052 private: 00053 sint32 _Id; 00054 00055 public: 00056 static const NLAIC::CIdentType IdMessageGroup; 00057 public: 00058 00059 CMessageGroup(sint32 id = 0) 00060 { 00061 _Id = id; 00062 } 00063 00064 CMessageGroup(const CMessageGroup &c) 00065 { 00066 _Id = c._Id; 00067 } 00068 00069 virtual void save(NLMISC::IStream &os) 00070 { 00071 sint32 id = (sint32) _Id; 00072 os.serial( id ); 00073 } 00074 00075 virtual void load(NLMISC::IStream &is) 00076 { 00077 sint32 id; 00078 is.serial( id ); 00079 _Id = (sint32) id; 00080 } 00081 00082 virtual const NLAIC::IBasicType *clone() const; 00083 virtual const NLAIC::IBasicType *newInstance() const; 00084 00085 virtual bool operator==(const IBasicMessageGroup *grp) const 00086 { 00087 return ( this->_Id == grp->getId() ); 00088 } 00089 00090 virtual bool operator==(const IBasicMessageGroup &grp) const 00091 { 00092 return ( this->_Id == grp.getId()); 00093 } 00094 00095 virtual void getDebugString(std::string &t) const 00096 { 00097 t += NLAIC::stringGetBuild("CMessageGroup<%d>",_Id); 00098 } 00099 00100 virtual const NLAIC::CIdentType &getType() const; 00101 00102 virtual const sint32 &getId() const 00103 { 00104 return _Id; 00105 } 00106 }; 00107 } 00108 #endif |