/*==LICENSE==* CyanWorlds.com Engine - MMOG client, server and tools Copyright (C) 2011 Cyan Worlds, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . You can contact Cyan Worlds, Inc. by email legal@cyan.com or by snail mail at: Cyan Worlds, Inc. 14617 N Newport Hwy Mead, WA 99021 *==LICENSE==*/ #ifndef pyAgeInfoStruct_h_inc #define pyAgeInfoStruct_h_inc #include "hsTypes.h" #include "hsStlUtils.h" #include "../plNetCommon/plNetServerSessionInfo.h" #include #include "pyGlueHelpers.h" ////////////////////////////////////////////////////////////////////// // // pyAgeInfoStruct - a wrapper class to provide interface to the plAgeInfoStruct // ////////////////////////////////////////////////////////////////////// class pyVaultAgeInfoNode; class pyAgeInfoStructRef; class pyAgeInfoStruct { private: plAgeInfoStruct fAgeInfo; mutable std::string fAgeInstanceGuidStr; // for getting Age Instance GUID mutable std::string fDisplayName; // used by GetDisplayName() protected: pyAgeInfoStruct(); pyAgeInfoStruct(plAgeInfoStruct * info); public: ~pyAgeInfoStruct(); // required functions for PyObject interoperability PYTHON_CLASS_NEW_FRIEND(ptAgeInfoStruct); PYTHON_CLASS_NEW_DEFINITION; static PyObject *New(plAgeInfoStruct *info); PYTHON_CLASS_CHECK_DEFINITION; // returns true if the PyObject is a pyAgeInfoStruct object PYTHON_CLASS_CONVERT_FROM_DEFINITION(pyAgeInfoStruct); // converts a PyObject to a pyAgeInfoStruct (throws error if not correct type) static void AddPlasmaClasses(PyObject *m); bool operator==(const pyAgeInfoStruct &other) const; bool operator!=(const pyAgeInfoStruct &other) const { return !(other==*this); } plAgeInfoStruct * GetAgeInfo() { return &fAgeInfo; } const plAgeInfoStruct * GetAgeInfo() const { return &fAgeInfo; } static void PythonModDef(); void CopyFrom( const pyAgeInfoStruct & other ); void CopyFromRef( const pyAgeInfoStructRef & other ); const char * GetAgeFilename() const; void SetAgeFilename( const char * v ); const char * GetAgeInstanceName() const; void SetAgeInstanceName( const char * v ); const char * GetAgeUserDefinedName() const; void SetAgeUserDefinedName( const char * v ); const char * GetAgeDescription() const; void SetAgeDescription( const char * v ); const char * GetAgeInstanceGuid() const; void SetAgeInstanceGuid( const char * guid ); Int32 GetAgeSequenceNumber() const; void SetAgeSequenceNumber( Int32 v ); Int32 GetAgeLanguage() const; void SetAgeLanguage( Int32 v ); const char * GetDisplayName() const; }; class pyAgeInfoStructRef { private: static plAgeInfoStruct fDefaultAgeInfo; // created so a default constructor could be made for python. Do NOT use plAgeInfoStruct & fAgeInfo; mutable std::string fAgeInstanceGuidStr; // for getting Age Instance GUID mutable std::string fDisplayName; // used by GetDisplayName() protected: pyAgeInfoStructRef(): fAgeInfo( fDefaultAgeInfo ) {} // only here for the python glue... do NOT call directly pyAgeInfoStructRef(plAgeInfoStruct & info): fAgeInfo( info ){} public: ~pyAgeInfoStructRef() {} // required functions for PyObject interoperability PYTHON_CLASS_NEW_FRIEND(ptAgeInfoStructRef); static PyObject *New(plAgeInfoStruct &info); PYTHON_CLASS_CHECK_DEFINITION; // returns true if the PyObject is a pyAgeInfoStructRef object PYTHON_CLASS_CONVERT_FROM_DEFINITION(pyAgeInfoStructRef); // converts a PyObject to a pyAgeInfoStructRef (throws error if not correct type) static void AddPlasmaClasses(PyObject *m); plAgeInfoStruct * GetAgeInfo() { return &fAgeInfo; } const plAgeInfoStruct * GetAgeInfo() const { return &fAgeInfo; } void CopyFrom( const pyAgeInfoStruct & other ); void CopyFromRef( const pyAgeInfoStructRef & other ); const char * GetAgeFilename() const; void SetAgeFilename( const char * v ); const char * GetAgeInstanceName() const; void SetAgeInstanceName( const char * v ); const char * GetAgeUserDefinedName() const; void SetAgeUserDefinedName( const char * v ); const char * GetAgeInstanceGuid() const; void SetAgeInstanceGuid( const char * guid ); Int32 GetAgeSequenceNumber() const; void SetAgeSequenceNumber( Int32 v ); const char * GetDisplayName() const; }; #endif // pyAgeInfoStruct_h_inc