Line data Source code
1 : 2 : /* 3 : * ALMA - Atacama Large Millimeter Array 4 : * (c) European Southern Observatory, 2002 5 : * (c) Associated Universities Inc., 2002 6 : * Copyright by ESO (in the framework of the ALMA collaboration), 7 : * Copyright by AUI (in the framework of the ALMA collaboration), 8 : * All rights reserved. 9 : * 10 : * This library is free software; you can redistribute it and/or 11 : * modify it under the terms of the GNU Lesser General Public 12 : * License as published by the Free software Foundation; either 13 : * version 2.1 of the License, or (at your option) any later version. 14 : * 15 : * This library is distributed in the hope that it will be useful, 16 : * but WITHOUT ANY WARRANTY, without even the implied warranty of 17 : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 : * Lesser General Public License for more details. 19 : * 20 : * You should have received a copy of the GNU Lesser General Public 21 : * License along with this library; if not, write to the Free Software 22 : * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 23 : * MA 02111-1307 USA 24 : * 25 : * Warning! 26 : * -------------------------------------------------------------------- 27 : * | This is generated code! Do not modify this file. | 28 : * | If you do, all changes will be lost when the file is re-generated. | 29 : * -------------------------------------------------------------------- 30 : * 31 : * File Representable.h 32 : */ 33 : 34 : #ifndef _Representable_H 35 : #define _Representable_H 36 : 37 : #ifndef __cplusplus 38 : #error This is a C++ include file and cannot be used from plain C 39 : #endif 40 : 41 : #include <alma/ASDM/Entity.h> 42 : #include <alma/ASDM/ConversionException.h> 43 : 44 : namespace asdm { 45 : 46 : 47 : /** 48 : * The Representable interface is implemented by all tables 49 : * and by the container. It represents methods that are 50 : * required to convert between the internal and the various 51 : * external representations of tables and containers. 52 : */ 53 : class Representable { 54 : friend class ASDM; 55 : 56 : public: 57 : 58 276 : virtual ~Representable() {} 59 : virtual std::string toXML() = 0; 60 : virtual void fromXML(std::string& xml) = 0; 61 : 62 : virtual std::string getName() const = 0; 63 : virtual unsigned int size() const = 0; 64 : 65 : protected: 66 : 67 : virtual Entity getEntity() const = 0; 68 : virtual void setEntity(Entity e) = 0; 69 : 70 : bool presentInMemory; 71 : bool loadInProgress; 72 : uint32_t declaredSize; 73 : }; 74 : 75 : } // End namespace asdm 76 : 77 : #endif /* _Representable_CLASS */