00001 #if !defined(_NAMEDBUFFERSETSTREAMER_HPP) 00002 #define _NAMEDBUFFERSETSTREAMER_HPP 00003 //============================================================================= 00004 // 00005 // XDFLengine library 00006 // 00007 //----------------------------------------------------------------------------- 00008 // NAMEDBUFFERSETSTREAMER.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 BEGIN_XDFLENGINE_NS 00046 00047 class XMLProcessor; 00048 00049 //============================================================================= 00050 // CLASS NAMEDBUFFERSETSTREAMER 00051 //----------------------------------------------------------------------------- 00053 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00054 class XDFLENGINE_EXPORT NamedBufferSetStreamer:public XMLStreamer 00055 { 00056 00057 private: //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00058 00059 XMLStreamBuffer* m_pNamedBuffer; 00060 00061 public: //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00062 00063 00064 // CONSTRUCTOR & DESTRUCTOR 00065 00066 //_____________________________________________________________________ 00067 // NamedBufferSetStreamer 00068 //--------------------------------------------------------------------- 00069 NamedBufferSetStreamer( const XMLStreamerFactory* p_pParent, StreamerParams* p_pParameters, XMLFlowContext* p_pContext, XMLStreamConsumer* p_pOutput); 00070 00071 //_____________________________________________________________________ 00072 // ~NamedBufferSetStreamer 00073 //--------------------------------------------------------------------- 00074 ~NamedBufferSetStreamer(); 00075 00076 // STREAM 00077 00078 //_____________________________________________________________________ 00079 // INITSTREAM 00080 //--------------------------------------------------------------------- 00081 bool initStream(); 00082 00083 //_____________________________________________________________________ 00084 // WRITEDATA 00085 //--------------------------------------------------------------------- 00086 void writeData( const char* p_pszData, unsigned int p_uiDataLen); 00087 00088 }; 00089 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00090 //============================================================================= 00091 00092 //============================================================================= 00093 // CLASS NAMEDBUFFERSETSTREAMERFACTORY 00094 //----------------------------------------------------------------------------- 00096 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00097 class XDFLENGINE_EXPORT NamedBufferSetStreamerFactory:public XMLStreamerFactory 00098 { 00099 public: //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00100 00101 //_____________________________________________________________________ 00102 // GETSTREAMER 00103 //--------------------------------------------------------------------- 00104 XMLStreamer* getStreamer(StreamerParams* p_pParameters, XMLFlowContext* p_pStreamContext, XMLStreamConsumer* p_pStreamConsumer) const; 00105 }; 00106 00107 //============================================================================= 00108 // CLASS _NAMEDBUFFERSETSTREAMERFACTORY 00109 //----------------------------------------------------------------------------- 00111 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00112 class XDFLENGINE_EXPORT _NamedBufferSetStreamerFactory:public XMLStreamerFactory 00113 { 00114 public: //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00115 00116 //_____________________________________________________________________ 00117 // GETSTREAMER 00118 //--------------------------------------------------------------------- 00119 XMLStreamer* getStreamer(StreamerParams* p_pParameters, XMLFlowContext* p_pStreamContext, XMLStreamConsumer* p_pStreamConsumer) const; 00120 }; 00121 00122 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00123 //============================================================================= 00124 00125 END_XDFLENGINE_NS 00126 00127 #endif 00128