00001 #if !defined(_SystemSTREAMER_HPP) 00002 #define _SystemSTREAMER_HPP 00003 //============================================================================= 00004 // 00005 // XDFLengine library 00006 // 00007 //----------------------------------------------------------------------------- 00008 // SystemSTREAMER.HPP 00009 //----------------------------------------------------------------------------- 00015 //_____________________________________________________________________________ 00016 // 00017 // Copyright (C) 2003 Guillaume Baurand. All Rights Reserved. 00018 // 00019 // This file is part of the XDFLengine project. 00020 // 00021 // The XDFLengine is free software; you can redistribute it and/or modify 00022 // it under the terms of the GNU General Public License as published by 00023 // the Free Software Foundation; either version 2 of the License, or 00024 // (at your option) any later version. 00025 // 00026 // This program is distributed in the hope that it will be useful, 00027 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00028 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00029 // GNU General Public License for more details. 00030 // 00031 // You should have received a copy of the GNU General Public License 00032 // along with this program; if not, write to the Free Software 00033 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 00034 // USA. 00035 // 00036 // For more information, 00037 // contact : guillaume@baurand.net 00038 // or visit : http://xdflengine.sourceforge.net 00039 // 00040 //============================================================================= 00041 00042 # include "config/commonincs.hpp" 00043 # include "processor/xmlstreamerfactory.hpp" 00044 00045 00046 BEGIN_XDFLENGINE_NS 00047 00048 00049 //============================================================================= 00050 // CLASS SystemSTREAMERFACTORY 00051 //----------------------------------------------------------------------------- 00053 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00054 class XDFLENGINE_EXPORT SystemStreamerFactory:public XMLStreamerFactory 00055 { 00056 00057 public: //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00058 00059 //_____________________________________________________________________ 00060 // GETSTREAMER 00061 //--------------------------------------------------------------------- 00062 XMLStreamer* getStreamer(StreamerParams* p_pParameters, XMLFlowContext* p_pStreamContext, XMLStreamConsumer* p_pStreamConsumer) const; 00063 }; 00064 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00065 //============================================================================= 00066 00067 00068 00069 //============================================================================= 00070 // CLASS SAXSystemHANDLER 00071 //----------------------------------------------------------------------------- 00073 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00074 class XDFLENGINE_EXPORT SAXSystemHandler : public ContentHandler 00075 { 00076 00077 private: //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00078 00079 XMLStreamConsumer* m_pStreamConsumer; 00080 XMLFlowContext* m_pContext; // Parsing context 00081 00082 public: //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00083 00084 // CONTRUCTOR & DESTRUCTOR 00085 00086 //_____________________________________________________________________ 00087 // SAXSystemHANDLER 00088 //--------------------------------------------------------------------- 00090 //_____________________________________________________________________ 00091 SAXSystemHandler(XMLFlowContext* p_pContext, XMLStreamConsumer* p_pStreamConsumer); 00092 00093 //_____________________________________________________________________ 00094 // ~SAXSystemHANDLER 00095 //--------------------------------------------------------------------- 00097 //_____________________________________________________________________ 00098 ~SAXSystemHandler(); 00099 00100 00101 // CONTENTHANDLER ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00102 00103 00104 //____________________________________________________________________ 00105 // STARTELEMENT 00106 //-------------------------------------------------------------------- 00107 void startElement( const XMLCh* const uri, const XMLCh* const localname, const XMLCh* const qname, const Attributes& attrs); 00108 00109 //____________________________________________________________________ 00110 // CHARACTERS 00111 //-------------------------------------------------------------------- 00117 //_____________________________________________________________________ 00118 void characters( const XMLCh* const chars, const unsigned int length); 00119 00120 //____________________________________________________________________ 00121 // ENDELEMENT 00122 //-------------------------------------------------------------------- 00123 void endElement ( const XMLCh* const uri, const XMLCh* const localname, const XMLCh* const qname); 00124 00125 // not implemented : 00126 void startDocument (){}; 00127 void endDocument (){}; 00128 void startPrefixMapping ( const XMLCh* const prefix,const XMLCh* const uri){}; 00129 void endPrefixMapping ( const XMLCh* const prefix){}; 00130 void processingInstruction ( const XMLCh* const target, const XMLCh* const data){}; 00131 void ignorableWhitespace ( const XMLCh* const chars, const unsigned int length){}; 00132 void setDocumentLocator ( const Locator* const locator) {}; 00133 void skippedEntity ( const XMLCh* const name){}; 00134 }; 00135 00136 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00137 //============================================================================= 00138 00139 END_XDFLENGINE_NS 00140 00141 #endif 00142