From 0ea5fc66924303d1bf73ba283a383e2aadee02f2 Mon Sep 17 00:00:00 2001 From: neodarz Date: Sat, 11 Aug 2018 20:21:34 +0200 Subject: Initial commit --- docs/doxygen/nel/a05964.html | 246 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 246 insertions(+) create mode 100644 docs/doxygen/nel/a05964.html (limited to 'docs/doxygen/nel/a05964.html') diff --git a/docs/doxygen/nel/a05964.html b/docs/doxygen/nel/a05964.html new file mode 100644 index 00000000..1e4aee7b --- /dev/null +++ b/docs/doxygen/nel/a05964.html @@ -0,0 +1,246 @@ + + +NeL: mailbox.cpp Source File + + + +
+

mailbox.cpp

Go to the documentation of this file.
00001 
+00006 /* Copyright, 2000 Nevrax Ltd.
+00007  *
+00008  * This file is part of NEVRAX NEL.
+00009  * NEVRAX NEL is free software; you can redistribute it and/or modify
+00010  * it under the terms of the GNU General Public License as published by
+00011  * the Free Software Foundation; either version 2, or (at your option)
+00012  * any later version.
+00013 
+00014  * NEVRAX NEL is distributed in the hope that it will be useful, but
+00015  * WITHOUT ANY WARRANTY; without even the implied warranty of
+00016  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+00017  * General Public License for more details.
+00018 
+00019  * You should have received a copy of the GNU General Public License
+00020  * along with NEVRAX NEL; see the file COPYING. If not, write to the
+00021  * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+00022  * MA 02111-1307, USA.
+00023  */
+00024 #include "nel/ai/agent/agent.h"
+00025 #include "nel/ai/agent/agent_script.h"
+00026 
+00027 namespace NLAIAGENT
+00028 {
+00029 
+00030         IMailBox::IMailBox(const IWordNumRef *parent):IConnectIA(parent)
+00031         {
+00032         }
+00033 
+00034         IMailBox::IMailBox(const IMailBox &c) : IConnectIA(c)
+00035         {
+00036         }
+00037 
+00038         IMailBox::IMailBox(NLMISC::IStream &is):IConnectIA(is)
+00039         {                       
+00040         }       
+00041 
+00042         IMailBox::~IMailBox()
+00043         {
+00044         }
+00045         
+00046         CLocalMailBox::CLocalMailBox (const IWordNumRef *parent):IMailBox(parent),_Size(0)
+00047         {
+00048         }
+00049 
+00050         CLocalMailBox::CLocalMailBox(NLMISC::IStream &is):IMailBox(is),_Size(0)
+00051         {
+00052                 load(is);
+00053         }
+00054 
+00055 
+00056         CLocalMailBox::CLocalMailBox (const CLocalMailBox &A):IMailBox(A),_RunState(A._RunState),_Size(0)
+00057         {                                                               
+00058         }
+00059 
+00060         CLocalMailBox::~CLocalMailBox()
+00061         {
+00062                 while(_ListMessageIn.begin() != _ListMessageIn.end())
+00063                 {
+00064                         IMessageBase *msg = (IMessageBase *)_ListMessageIn.back();
+00065                         msg->release();
+00066                         _ListMessageIn.pop_back();
+00067                 }               
+00068 
+00069         }
+00070 
+00071         const IMessageBase &CLocalMailBox::getMessage()
+00072         {                               
+00073                 return *_ListMessageIn.back();
+00074         }
+00075 
+00076         void CLocalMailBox::popMessage()
+00077         {                       
+00078                 ((IMessageBase *)_ListMessageIn.back())->release();
+00079                 _ListMessageIn.pop_back();
+00080                 _Size --;
+00081         }
+00082 
+00083         sint32 CLocalMailBox::getMessageCount() const
+00084         {
+00085                 return _Size;
+00086         }
+00087 
+00088         bool CLocalMailBox::isEmpty() const
+00089         {
+00090                 return _Size == 0;
+00091         }
+00092                 
+00093         IObjectIA::CProcessResult CLocalMailBox::sendMessage(IMessageBase *m)
+00094         {
+00095                 m->release();           
+00096                 return IObjectIA::ProcessRun;
+00097         }
+00098 
+00099         void CLocalMailBox::addMessage(IMessageBase *msg)
+00100         {
+00101                 _ListMessageIn.push_front(msg);
+00102                 _Size ++;
+00103         }
+00104         
+00105         // Ajoute une boite aux lettre dans la liste des boites aux lettres "source" (les bals à consulter).
+00106         void CLocalMailBox::addMailBox(IMailBox *mail)
+00107         {
+00108                 connect( mail );
+00109                 _ListMailBox.push_back((IMailBox *)mail);               
+00110 
+00111         }
+00112 
+00113         // Supprime une boite aux lettre dans la liste des boites aux lettres "source" (les bals à consulter).
+00114         void CLocalMailBox::removeMailBox(IMailBox *mail)
+00115         {                               
+00116                 eraseFromList<IMailBox *>(&_ListMailBox,mail);
+00117                 removeConnection(mail);
+00118         }
+00119 
+00120         
+00121 
+00122         const NLAIC::IBasicType *CLocalMailBox::clone() const
+00123         {
+00124                 NLAIC::IBasicType *a = new CLocalMailBox(*this);
+00125                 return a;
+00126         }
+00127 
+00128         const NLAIC::IBasicType *CLocalMailBox::newInstance() const
+00129         {                               
+00130                 NLAIC::IBasicType *a;
+00131                 if(getParent() != NULL) 
+00132                         a = new CLocalMailBox((const IWordNumRef *)getParent());
+00133                 else 
+00134                         a = new CLocalMailBox((const IWordNumRef *)NULL);
+00135                 return a;
+00136         }
+00137 
+00138         const NLAIC::CIdentType &CLocalMailBox::getType() const
+00139         {
+00140                 return IdLocalMailBox;
+00141         }
+00142 
+00143         void CLocalMailBox::onKill(IConnectIA *a)
+00144         {                               
+00145                 eraseFromList<IMailBox *>(&_ListMailBox,(IMailBox *)a);
+00146 
+00147                 TListMessageIter msgItr = _ListMessageIn.begin();
+00148                 while(msgItr != _ListMessageIn.end())
+00149                 {
+00150                         IMessageBase *msg = (IMessageBase *)*msgItr;
+00151 
+00152                         if(msg->getSender() == a || msg->getContinuation() == a || msg->getReceiver() == a)
+00153                         {
+00154                                 TListMessageIter iTmp = msgItr++;
+00155                                 _ListMessageIn.erase(iTmp);
+00156                                 msg->release();
+00157                                 _Size --;
+00158                         }
+00159                         else msgItr++;                  
+00160                 }
+00161 
+00162         }
+00163         
+00164         bool CLocalMailBox::isEqual(const IBasicObjectIA &a) const
+00165         {
+00166                 const IMailBox &m = (const IMailBox &)a;
+00167                 return (const IWordNumRef &)m == (const IWordNumRef &)*this;
+00168         }
+00169 
+00170         void CLocalMailBox::save(NLMISC::IStream &os)
+00171         {       
+00172                 IMailBox::save(os);
+00173                 sint32 size = _ListMailBox.size();
+00174                 os.serial( size );
+00175                 TListMailBoxCstIter k = _ListMailBox.begin();
+00176                 while(k != _ListMailBox.end())
+00177                 {
+00178                         IMailBox *mail = *k++;                                  
+00179                         ((IWordNumRef *)(const NLAIAGENT::IWordNumRef *)*mail)->save(os);
+00180                 }
+00181 
+00182                 size = _ListMessageIn.size();
+00183                 os.serial( size );
+00184                 TListMessageIter msgItr = _ListMessageIn.begin();
+00185                 while(msgItr != _ListMessageIn.end())
+00186                 {
+00187                         IMessageBase *msg = (IMessageBase *)*msgItr++;
+00188                         os.serial( (NLAIC::CIdentType &) (msg->getType()) );
+00189                         msg->save(os);
+00190                 }
+00191                                 
+00192         }
+00193 
+00194         void CLocalMailBox::load(NLMISC::IStream &is)
+00195         {                       
+00196                 IMailBox::load(is);
+00197                 sint32 i;                               
+00198                 NLAIC::CIdentTypeAlloc id;                      
+00199                 is.serial(i);
+00200                 _Size = 0;
+00201                 if(i)
+00202                 {
+00203                         while(i --)
+00204                         {
+00205                                 is.serial(id);
+00206                                 IWordNumRef *num = (IWordNumRef *)id.allocClass();
+00207                                 num->load(is);
+00208                                 _ListMailBox.push_back((IMailBox *)((const IRefrence *)*num));
+00209                                 _Size ++;
+00210                                 delete num;
+00211                         }
+00212                 }
+00213         }                                       
+00214 
+00215         const IObjectIA::CProcessResult &CLocalMailBox::getState() const 
+00216         {
+00217                 return _RunState;
+00218         }
+00219 
+00220         void CLocalMailBox::setState(TProcessStatement state, IObjectIA *result)
+00221         {
+00222                 _RunState.ResultState = state;
+00223                 _RunState.Result = result;
+00224         }       
+00225 
+00226         const IObjectIA::CProcessResult &CLocalMailBox::run()
+00227         {               
+00228                 return getState();
+00229         }
+00230 
+00231         void CLocalMailBox::getDebugString(std::string &t) const
+00232         {
+00233                 t += "class CLocalMailBox parent";      
+00234 
+00235         }       
+00236 }
+

Generated on Tue Mar 16 06:27:56 2004 for NeL by + +doxygen +1.3.6
+ + -- cgit v1.2.1