00001 /* 00002 * Copyright 2006 Sony Computer Entertainment Inc. 00003 * 00004 * Licensed under the MIT Open Source License, for details please see license.txt or the website 00005 * http://www.opensource.org/licenses/mit-license.php 00006 * 00007 */ 00008 00009 #ifndef __DAE_TINYXMLPLUGIN__ 00010 #define __DAE_TINYXMLPLUGIN__ 00011 00012 #include <vector> 00013 #include <list> 00014 #include <dae/daeElement.h> 00015 #include <dae/daeURI.h> 00016 #include <dae/daeIOPluginCommon.h> 00017 00018 class TiXmlDocument; 00019 class TiXmlElement; 00020 00021 class daeTinyXMLPlugin : public daeIOPluginCommon 00022 { 00023 public: 00024 // Constructor / destructor 00028 DLLSPEC daeTinyXMLPlugin(); 00032 virtual DLLSPEC ~daeTinyXMLPlugin(); 00033 00034 // Operations 00035 virtual DLLSPEC daeInt write(const daeURI& name, daeDocument *document, daeBool replace); 00036 00047 virtual DLLSPEC daeInt setOption( daeString option, daeString value ); 00048 00055 virtual DLLSPEC daeString getOption( daeString option ); 00056 00057 private: 00058 TiXmlDocument* m_doc; 00059 std::list<TiXmlElement*> m_elements; 00060 00061 virtual daeElementRef readFromFile(const daeURI& uri); 00062 virtual daeElementRef readFromMemory(daeString buffer, const daeURI& baseUri); 00063 daeElementRef readElement(TiXmlElement* tinyXmlElement, daeElement* parentElement); 00064 00065 void writeElement( daeElement* element ); 00066 void writeAttribute( daeMetaAttribute* attr, daeElement* element ); 00067 void writeValue( daeElement* element ); 00068 }; 00069 00070 #endif //__DAE_TINYXMLPLUGIN__