00001 #if !defined(_XMLSTREAMCONSUMER_HPP) 00002 #define _XMLSTREAMCONSUMER_HPP 00003 //============================================================================= 00004 // 00005 // XDFLengine library 00006 // 00007 //----------------------------------------------------------------------------- 00008 // XMLSTREAMCONSUMER.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 # include "config/commonincs.hpp" 00042 00043 00044 BEGIN_XDFLENGINE_NS 00045 00046 00047 class XMLStreamProvider; 00048 00049 //============================================================================= 00050 // CLASS XMLStreamConsumer 00051 //----------------------------------------------------------------------------- 00052 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00053 class XDFLENGINE_EXPORT XMLStreamConsumer 00054 { 00055 00056 public: 00057 00058 // constructor and destructor 00059 00060 XMLStreamConsumer(); 00061 virtual ~XMLStreamConsumer(); 00062 00063 00064 //_____________________________________________________________________ 00065 // WRITEDATA 00066 //--------------------------------------------------------------------- 00067 //_____________________________________________________________________ 00068 virtual void writeData( const char* p_pszData, unsigned int p_uiDataLen)=0; 00069 00070 00071 // STREAM OPERATORS 00072 00073 //_____________________________________________________________________ 00074 // OPERATOR << 00075 //--------------------------------------------------------------------- 00079 //_____________________________________________________________________ 00080 XMLStreamConsumer & operator<< ( const char* p_szData); 00081 00082 //_____________________________________________________________________ 00083 // OPERATOR << 00084 //--------------------------------------------------------------------- 00088 //_____________________________________________________________________ 00089 XMLStreamConsumer & operator<< ( long p_lVal); 00090 00091 //_____________________________________________________________________ 00092 // OPERATOR << 00093 //--------------------------------------------------------------------- 00097 //_____________________________________________________________________ 00098 XMLStreamConsumer & operator<< ( double p_dVal); 00099 00100 //_____________________________________________________________________ 00101 // OPERATOR << 00102 //--------------------------------------------------------------------- 00106 //_____________________________________________________________________ 00107 XMLStreamConsumer & operator<< ( XMLStreamProvider& p_StreamProvider); 00108 00109 //_____________________________________________________________________ 00110 // COMMITSTREAM 00111 //--------------------------------------------------------------------- 00112 //_____________________________________________________________________ 00113 virtual bool commitStream(bool fFinal = false); 00114 }; 00115 //----------------------------------------------------------------------------- 00116 //============================================================================= 00117 00118 00119 END_XDFLENGINE_NS 00120 00121 #endif