00001 #if !defined(_DDLStreamer_HPP) 00002 #define _DDLStreamer_HPP 00003 //============================================================================= 00004 // 00005 // XDFLengine library 00006 // 00007 //----------------------------------------------------------------------------- 00008 // DDLStreamer.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 "streamers/db/dbstreamerfactory.hpp" 00044 # include "streamers/generic/saxstreamer.hpp" 00045 00046 BEGIN_XDFLENGINE_NS 00047 00048 class XMLProcessor; 00049 class DBOBJDefinitionNode; 00050 class SAXDBOBJDefinitionBuilder; 00051 00052 //============================================================================= 00053 // CLASS DDLStreamer 00054 //----------------------------------------------------------------------------- 00056 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00057 class XDFLENGINE_EXPORT DDLStreamer:public SaxStreamer 00058 { 00059 00060 protected: //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00061 00062 //DBStreamerFactory* m_pParent; 00063 //SAXDBOBJDefinitionBuilder* m_pHandler; 00064 00065 public: //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00066 00067 //_____________________________________________________________________ 00068 // DDLStreamer 00069 //--------------------------------------------------------------------- 00070 DDLStreamer( const XMLStreamerFactory* p_pParent, StreamerParams* p_pParameters, XMLFlowContext* p_pContext, XMLStreamConsumer* p_pOutput, ContentHandler* p_pHandler, bool p_fCopyStreamToOutput ); 00071 00072 //_____________________________________________________________________ 00073 // ~DDLStreamer 00074 //--------------------------------------------------------------------- 00075 virtual ~DDLStreamer(); 00076 00077 //_____________________________________________________________________ 00078 // COMMITSTREAM 00079 //--------------------------------------------------------------------- 00080 bool commitStream(bool p_fFinal=false); 00081 00082 //_____________________________________________________________________ 00083 // ~MAKENODEDDL 00084 //--------------------------------------------------------------------- 00086 // 00089 //_____________________________________________________________________ 00090 void makeNodeDDL( DBOBJDefinitionNode* p_pDefinitionNode, XMLStreamConsumer* p_pOutput ) const; 00091 00092 //_____________________________________________________________________ 00093 // getColumnDDL_Simple 00094 //--------------------------------------------------------------------- 00100 //_____________________________________________________________________ 00101 char* getColumnDDL_Simple( const char* p_pszReducedType) const; 00102 00103 00104 }; 00105 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00106 //============================================================================= 00107 00108 //============================================================================= 00109 // CLASS DDLStreamerFACTORY 00110 //----------------------------------------------------------------------------- 00112 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00113 class XDFLENGINE_EXPORT DDLStreamerFactory:public DBStreamerFactory 00114 { 00115 00116 public: //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00117 00118 //_____________________________________________________________________ 00119 // GETSTREAMER 00120 //--------------------------------------------------------------------- 00121 XMLStreamer* getStreamer(StreamerParams* p_pParameters, XMLFlowContext* p_pStreamContext, XMLStreamConsumer* p_pStreamConsumer) const; 00122 }; 00123 00124 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00125 //============================================================================= 00126 00127 END_XDFLENGINE_NS 00128 00129 #endif 00130