00001 #if !defined(_XMLSTREAMERFACTORY_HPP) 00002 #define _XMLSTREAMERFACTORY_HPP 00003 //============================================================================= 00004 // 00005 // XDFLengine library 00006 // 00007 //----------------------------------------------------------------------------- 00008 // XMLSTREAMERFACTORY.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 "flow/buffers/xmlbuffers.hpp" 00044 # include "flow/xmlstreamconsumer.hpp" 00045 # include "processor/xmlstreamer.hpp" 00046 00047 BEGIN_XDFLENGINE_NS 00048 00049 class XMLProcessor; 00050 class XMLFlowContext; 00051 00052 //============================================================================= 00053 // CLASS XMLSTREAMERFACTORY 00054 //----------------------------------------------------------------------------- 00062 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00063 class XDFLENGINE_EXPORT XMLStreamerFactory 00064 { 00065 00066 protected: 00067 00068 XMLProcessor* m_pParentProcessor; 00069 00070 public: 00071 00072 // CONSTRUCTOR & DESTRUCTOR 00073 00074 //_____________________________________________________________________ 00075 // XMLSTREAMERFACTORY 00076 //-------------------------------------------------------------------- 00078 //_____________________________________________________________________ 00079 XMLStreamerFactory(); 00080 00081 //_____________________________________________________________________ 00082 // ~XMLSTREAMERFACTORY 00083 //--------------------------------------------------------------------- 00085 //_____________________________________________________________________ 00086 virtual ~XMLStreamerFactory(); 00087 00088 // PARENT 00089 00090 //_____________________________________________________________________ 00091 // SETPARENT 00092 //--------------------------------------------------------------------- 00095 //_____________________________________________________________________ 00096 void setParent( XMLProcessor* p_pParentProcessor); 00097 00098 //_____________________________________________________________________ 00099 // GETPARENT 00100 //--------------------------------------------------------------------- 00103 //--------------------------------------------------------------------- 00104 XMLProcessor* getParent() const; 00105 00106 // PROCESS 00107 00108 //_____________________________________________________________________ 00109 // GETSTREAMER 00110 //--------------------------------------------------------------------- 00115 //_____________________________________________________________________ 00116 virtual XMLStreamer* getStreamer(StreamerParams* p_pParameters, XMLFlowContext* p_pStreamContext, XMLStreamConsumer* p_pStreamConsumer) const =0; 00117 00118 //_____________________________________________________________________ 00119 // TICK 00120 //--------------------------------------------------------------------- 00124 //_____________________________________________________________________ 00125 virtual void tick(unsigned long p_ulClock); 00126 00127 }; 00128 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00129 //============================================================================= 00130 00131 END_XDFLENGINE_NS 00132 00133 #endif 00134 00135