From 0ea5fc66924303d1bf73ba283a383e2aadee02f2 Mon Sep 17 00:00:00 2001 From: neodarz Date: Sat, 11 Aug 2018 20:21:34 +0200 Subject: Initial commit --- .../nel/opcode__call__method_8h-source.html | 465 +++++++++++++++++++++ 1 file changed, 465 insertions(+) create mode 100644 docs/doxygen/nel/opcode__call__method_8h-source.html (limited to 'docs/doxygen/nel/opcode__call__method_8h-source.html') diff --git a/docs/doxygen/nel/opcode__call__method_8h-source.html b/docs/doxygen/nel/opcode__call__method_8h-source.html new file mode 100644 index 00000000..a36f5ec2 --- /dev/null +++ b/docs/doxygen/nel/opcode__call__method_8h-source.html @@ -0,0 +1,465 @@ + + + + nevrax.org : docs + + + + + + + + + + + + + + +
# Home   # nevrax.com   
+ + + + +
Nevrax
+ + + + + + + + + + +
+ + +
+ Nevrax.org
+ + + + + + + +
#News
#Mailing-list
#Documentation
#CVS
#Bugs
#License
+
+ + +
+ + +
+Docs + +
+  + + + + + +
Documentation 
+ +
+Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages   Search  
+

opcode_call_method.h

Go 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_OP_CODE_CALL_METHOD_H
+00026 #define NL_OP_CODE_CALL_METHOD_H
+00027 
+00028 namespace NLAISCRIPT
+00029 {
+00030         class IMethodContext
+00031         {
+00032         public:
+00033                 virtual void saveConstext(CCodeContext &context) = 0;
+00034                 virtual void loadConstext(CCodeContext &context) = 0;
+00035 
+00036                 virtual const IMethodContext *clone() const = 0;
+00037         };
+00038 
+00039 
+00040         class CMethodContext: public IMethodContext
+00041         {
+00042         public:
+00043                 virtual void saveConstext(CCodeContext &context);
+00044                 virtual void loadConstext(CCodeContext &context);
+00045 
+00046                 const IMethodContext *clone() const;
+00047                 
+00048         };
+00049 
+00050         class CMethodContextDebug: public IMethodContext
+00051         {
+00052         public:
+00053                 virtual void saveConstext(CCodeContext &context);
+00054                 virtual void loadConstext(CCodeContext &context);
+00055 
+00056                 const IMethodContext *clone() const;
+00057                 
+00058         };
+00059 
+00060         class ICallMethod: public IOpRunCode
+00061         {
+00062         private:
+00063                 IMethodContext *_MethodContext;
+00064 
+00065         public:
+00066                 ICallMethod(const ICallMethod &c):_MethodContext((IMethodContext *)c._MethodContext->clone())
+00067                 {
+00068                 }
+00069 
+00070                 ICallMethod(IMethodContext *c):_MethodContext(c)
+00071                 {
+00072                 }
+00073 
+00074                 void saveConstext(CCodeContext &context)
+00075                 {
+00076                         _MethodContext->saveConstext(context);
+00077                 }
+00078 
+00079                 void loadConstext(CCodeContext &context)
+00080                 {
+00081                         _MethodContext->loadConstext(context);
+00082                 }
+00083 
+00084                 virtual ~ICallMethod()
+00085                 {
+00086                         delete _MethodContext;
+00087                 }
+00088         };
+00089 
+00090         class CCallMethod: public ICallMethod
+00091         {
+00092         public:
+00093                 static const NLAIC::CIdentType IdCallMethode;
+00094                 
+00095         private:
+00096                 sint32 _Inheritance;
+00097                 sint32 _I;
+00098 
+00099         public:
+00100 
+00101                 CCallMethod(const CCallMethod &c):ICallMethod(c),_Inheritance(c._Inheritance),_I(c._I)
+00102                 {                       
+00103                 }
+00104 
+00105                 CCallMethod(IMethodContext *c,sint32 inheritance,sint32 i):ICallMethod(c),_Inheritance(inheritance),_I(i)
+00106                 {                       
+00107                 }
+00108 
+00109                 NLAIAGENT::TProcessStatement runOpCode(CCodeContext &context);          
+00110                 
+00111                 void getDebugResult(std::string &str,CCodeContext &context) const;
+00112 
+00113                 const NLAIC::IBasicType *clone() const
+00114                 {
+00115                         NLAIC::IBasicType *x = new CCallMethod(*this);
+00116                         return x;
+00117                 }
+00118                 const NLAIC::IBasicType *newInstance() const
+00119                 {
+00120                         return clone();
+00121                 }
+00122                 const NLAIC::CIdentType &getType() const
+00123                 {
+00124                         return IdCallMethode;
+00125                 }
+00126 
+00127                 
+00128 
+00129                 void save(NLMISC::IStream &os)
+00130                 {               
+00131                         sint32 n = (sint32) _I;
+00132                         os.serial(n);
+00133                         n = (sint32) _Inheritance;
+00134                         os.serial(n);
+00135                 }
+00136 
+00137                 void load(NLMISC::IStream &is) 
+00138                 {                               
+00139                         sint32 n;
+00140                         is.serial(n);
+00141                         _I = n;
+00142                         is.serial(n);
+00143                         _Inheritance = n;
+00144                 }
+00145                                 
+00146 
+00147                 virtual ~CCallMethod()
+00148                 {
+00149                 }
+00150 
+00151         };      
+00152         
+00153         class CCallHeapMethodi: public ICallMethod
+00154         {
+00155         public:
+00156                 static const NLAIC::CIdentType IdCallHeapMethodei;
+00157                 
+00158         private:
+00159                 sint32 _Inheritance;
+00160                 sint32 _I;
+00161                 sint32 _HeapPos;
+00162                 std::list<sint32> _N;
+00163 
+00164         public:                 
+00165                 CCallHeapMethodi(const CCallHeapMethodi &c):ICallMethod(c),_Inheritance(c._Inheritance),_I(c._I),_HeapPos(c._HeapPos),_N(c._N)
+00166                 {
+00167                 }
+00168                 CCallHeapMethodi(IMethodContext *c,sint32 inheritance,sint32 i,sint32 heapPos,const std::list<sint32> &l):
+00169                                                                 ICallMethod(c),_Inheritance(inheritance),_I(i),_HeapPos(heapPos),_N(l)
+00170                 {
+00171                 }
+00172 
+00173                 NLAIAGENT::TProcessStatement runOpCode(CCodeContext &context);          
+00174                 void getDebugResult(std::string &str,CCodeContext &context) const;
+00175                                 
+00176                 const NLAIC::IBasicType *clone() const
+00177                 {
+00178                         NLAIC::IBasicType *x = new CCallHeapMethodi(*this);
+00179                         return x;
+00180                 }
+00181                 const NLAIC::IBasicType *newInstance() const
+00182                 {
+00183                         return clone();
+00184                 }
+00185                 const NLAIC::CIdentType &getType() const
+00186                 {
+00187                         return IdCallHeapMethodei;
+00188                 }               
+00189                 
+00190                 void save(NLMISC::IStream &os)
+00191                 {
+00192                         sint32 n = (sint32) _I;
+00193                         os.serial(n);
+00194                         n = (sint32) _Inheritance;
+00195                         os.serial(n);
+00196                         n = (sint32) _HeapPos;
+00197                         os.serial(n);
+00198                         std::list<sint32> &i = (std::list<sint32> &)_N;
+00199                         os.serialCont(i);
+00200                 }
+00201 
+00202                 void load(NLMISC::IStream &is) 
+00203                 {                               
+00204                         sint32 n;
+00205                         is.serial(n);
+00206                         _I = n;
+00207                         is.serial(n);
+00208                         _Inheritance = n;
+00209                         is.serial(n);
+00210                         _HeapPos = n;                   
+00211                         is.serialCont(_N);
+00212                 }
+00213                                 
+00214                 virtual ~CCallHeapMethodi()
+00215                 {
+00216                 }
+00217 
+00218         };
+00219         
+00220 
+00221         class CCallStackMethodi: public ICallMethod
+00222         {
+00223         public:
+00224                 static const NLAIC::CIdentType IdCallStackMethodei;
+00225 
+00226         protected:
+00227                 sint32 _Inheritance;
+00228                 sint32 _I;
+00229                 std::list<sint32> _N;
+00230                 
+00231         public:                 
+00232                 CCallStackMethodi(const CCallStackMethodi &c):ICallMethod(c),_Inheritance(c._Inheritance),_I(c._I),_N(c._N)
+00233                 {
+00234                 }
+00235                 CCallStackMethodi(IMethodContext *c,sint32 inheritance,sint32 i,const std::list<sint32> &l):ICallMethod(c),_Inheritance(inheritance),_I(i),_N(l)
+00236                 {                       
+00237                 }
+00238 
+00239                 virtual  NLAIAGENT::TProcessStatement runOpCode(CCodeContext &context);         
+00240                 
+00241                 void getDebugResult(std::string &str,CCodeContext &context) const;              
+00242 
+00243                 virtual const NLAIC::IBasicType *clone() const
+00244                 {
+00245                         NLAIC::IBasicType *x = new CCallStackMethodi(*this);
+00246                         return x;
+00247                 }
+00248                 const NLAIC::IBasicType *newInstance() const
+00249                 {
+00250                         return clone();
+00251                 }
+00252                 virtual const NLAIC::CIdentType &getType() const
+00253                 {
+00254                         return IdCallStackMethodei;
+00255                 }
+00256                 
+00257 
+00258                 void save(NLMISC::IStream &os)
+00259                 {               
+00260                         sint32 n = (sint32) _I;
+00261                         os.serial(n);
+00262                         n = (sint32) _Inheritance;
+00263                         os.serial(n);
+00264                         std::list<sint32> &i = (std::list<sint32> &)_N;
+00265                         os.serialCont(i);
+00266                 }
+00267 
+00268                 void load(NLMISC::IStream &is) 
+00269                 {                               
+00270                         sint32 n;
+00271                         is.serial(n);
+00272                         _I = n;
+00273                         is.serial(n);
+00274                         _Inheritance = n;
+00275                         is.serialCont(_N);
+00276                 }
+00277                                 
+00278                 virtual ~CCallStackMethodi()
+00279                 {
+00280                 }
+00281 
+00282         };
+00283 
+00284         class CCallStackNewMethodi: public CCallStackMethodi
+00285         {
+00286         public:
+00287                 static const NLAIC::CIdentType IdCallStackNewMethodei;
+00288         
+00289         public:
+00290                 CCallStackNewMethodi(const CCallStackNewMethodi &c):CCallStackMethodi(c)
+00291                 {
+00292                         
+00293                 }
+00294                 CCallStackNewMethodi(IMethodContext *c,sint32 inheritance,sint32 i,const std::list<sint32> &l):CCallStackMethodi(c,inheritance,i,l)
+00295                 {                       
+00296                 }
+00297 
+00298                 NLAIAGENT::TProcessStatement runOpCode(CCodeContext &context);
+00299 
+00300                 void getDebugResult(std::string &str,CCodeContext &context) const
+00301                 {               
+00302                         NLAIAGENT::IObjectIA *obj = (NLAIAGENT::IObjectIA *)context.Stack[(int)context.Stack];
+00303                         std::list<sint32>::const_iterator it = _N.begin();
+00304 
+00305                         while(it != _N.end())
+00306                         {
+00307                                 obj = (NLAIAGENT::IObjectIA *)obj->getStaticMember(*it++);
+00308                         }
+00309 
+00310                         str = NLAIC::stringGetBuild("CallMethod %d de la class '%s' dans le stack apres un new",_I, (const char *)obj->getType());
+00311                 }
+00312 
+00313                 const NLAIC::IBasicType *clone() const
+00314                 {
+00315                         NLAIC::IBasicType *x = new CCallStackNewMethodi(*this);
+00316                         return x;
+00317                 }
+00318 
+00319                 const NLAIC::CIdentType &getType() const
+00320                 {
+00321                         return IdCallStackNewMethodei;
+00322                 }
+00323                                 
+00324                 virtual ~CCallStackNewMethodi()
+00325                 {
+00326                 }
+00327 
+00328         };
+00329         
+00330 
+00331         class CCallMethodi: public ICallMethod
+00332         {
+00333         public:
+00334                 static const NLAIC::CIdentType IdCallMethodei;
+00335                 
+00336         private:
+00337                 sint32 _Inheritance;
+00338                 sint32 _I;
+00339                 std::list<sint32> _N;
+00340                 
+00341         public:
+00342                 CCallMethodi(const CCallMethodi &c):ICallMethod(c),_Inheritance(c._Inheritance),_I(c._I),_N(c._N)
+00343                 {
+00344 
+00345                 }
+00346                 
+00347                 CCallMethodi(IMethodContext *c,sint32 inheritance,sint32 i,const std::list<sint32> &l):ICallMethod(c),_Inheritance(inheritance),_I(i),_N(l)
+00348                 {                       
+00349                 }
+00350 
+00351                 NLAIAGENT::TProcessStatement runOpCode(CCodeContext &context);          
+00352                 
+00353                 void getDebugResult(std::string &str,CCodeContext &context) const;              
+00354 
+00355                 const NLAIC::IBasicType *clone() const
+00356                 {
+00357                         NLAIC::IBasicType *x = new CCallMethodi(*this);
+00358                         return x;
+00359                 }
+00360                 const NLAIC::IBasicType *newInstance() const
+00361                 {
+00362                         return clone();
+00363                 }
+00364                 const NLAIC::CIdentType &getType() const
+00365                 {
+00366                         return IdCallMethodei;
+00367                 }
+00368                 
+00369 
+00370                 void save(NLMISC::IStream &os)
+00371                 {               
+00372                         sint32 n = (sint32) _I;
+00373                         os.serial(n);
+00374                         n = (sint32) _Inheritance;
+00375                         os.serial(n);
+00376                         std::list<sint32> &i = (std::list<sint32> &)_N;
+00377                         os.serialCont(i);
+00378                 }
+00379 
+00380                 void load(NLMISC::IStream &is) 
+00381                 {                               
+00382                         sint32 n;
+00383                         is.serial(n);
+00384                         _I = n;
+00385                         is.serial(n);
+00386                         _Inheritance = n;
+00387                         is.serialCont(_N);
+00388                 }
+00389                                 
+00390                 virtual ~CCallMethodi()
+00391                 {
+00392                 }
+00393 
+00394         };              
+00395 }
+00396 #endif
+
+ + +
                                                                                                                                                                    +
+ + -- cgit v1.2.1