00001 /* 00002 Copyright 2007, 2008, 2009, 2010, 2011 Instituto de Sistemas e Robotica, Instituto Superior Tecnico 00003 00004 This file is part of MeRMaID. 00005 00006 MeRMaID is free software: you can redistribute it and/or modify 00007 it under the terms of the GNU Lesser General Public License as published by 00008 the Free Software Foundation, either version 3 of the License, or 00009 (at your option) any later version. 00010 00011 MeRMaID is distributed in the hope that it will be useful, 00012 but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 GNU Lesser General Public License for more details. 00015 00016 You should have received a copy of the GNU Lesser General Public License 00017 along with MeRMaID. If not, see <http://www.gnu.org/licenses/>. 00018 */ 00019 00020 00021 00022 /** 00023 * @Filename XmlConvertible.hpp 00024 * @Description XmlConvertible declaration file. 00025 * @Status Implementing 00026 * @Version $Id: XmlConvertible.hpp 1 2011-03-04 18:13:18Z jreis $ 00027 * @Maintainer Nelson Ramos (nmsra@mega.ist.utl.pt) 00028 */ 00029 00030 #ifndef __XML_XMLCONVERTIBLE_H_ 00031 #define __XML_XMLCONVERTIBLE_H_ 00032 00033 namespace mermaid 00034 { 00035 namespace support 00036 { 00037 namespace xml 00038 { 00039 class XmlConvertible; 00040 } 00041 } 00042 } 00043 00044 #include "XmlElement.hpp" 00045 00046 00047 00048 namespace mermaid 00049 { 00050 namespace support 00051 { 00052 namespace xml 00053 { 00054 /** 00055 * @Class XmlConvertible XmlConvertible.h "XmlConvertible.h" 00056 * @Description Class that is to be inherited by classes that are able 00057 * to produce XML output 00058 * @Author Marco Barbosa 00059 */ 00060 class XmlConvertible 00061 { 00062 public: 00063 virtual ~XmlConvertible(); 00064 00065 /** 00066 * @Description Operator that converts to an XmlElement 00067 * @Author Marco Barbosa 00068 */ 00069 virtual operator XmlElement() = 0; 00070 }; // class XmlConvertible 00071 } // namespace xml 00072 } // namespace support 00073 } // namespace mermaid 00074 00075 #endif // __XML_XMLCONVERTIBLE_H_