/*========================================================================= Program: wxMaracas Module: $RCSfile: marObject.h,v $ Language: C++ Date: $Date: 2009/01/15 11:09:47 $ Version: $Revision: 1.4 $ Copyright: (c) 2002, 2003 License: This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ #ifndef __MAR__KERNEL__OBJECT__HXX__ #define __MAR__KERNEL__OBJECT__HXX__ #include #include "marTypes.h" #include "marParameters.h" /** /def marObject * \brief General maracas object. */ class creaMaracasVisu_EXPORT marObject { public: /** Default constructor. */ marObject( marParameters* p ); /** Default destructor. */ virtual ~marObject( ); /** Parameters assignation methods. * * You can assign a marParameters object by reference (setParameters) * or by value (copyParameters). * Besides, if you want to make your actual reference to be by value, * call makeACopyParameters. */ void setParameters( marParameters* p ); void copyParameters( marParameters* p ); void makeACopyParameters( ) { copyParameters( _parameters ); } /** Parameters analizers. */ marParameters* getParameters( ) { return( _parameters ); }; bool parametersOwned( ) { return( _parametersCopied ); }; /** Virtual general methods * (must be defined in each sub-class). */ virtual void reset( ) = 0; virtual void copyFrom( const marObject& from ) = 0; /** Virtual persistence methods * (must be defined in each sub-class). */ virtual bool save( std::ofstream& os ) = 0; virtual bool load( std::ifstream& is ) = 0; /** Persistence methods */ bool save( std::string& nw ); bool load( std::string& nr ); private: marParameters* _parameters; bool _parametersCopied; }; #endif // __MAR__KERNEL__OBJECT__HXX__ // eof - marObject.h