00001 #if !defined(_DBOBJStreamerFactory_HPP) 00002 #define _DBOBJStreamerFactory_HPP 00003 //============================================================================= 00004 // 00005 // XDFLengine library 00006 // 00007 //----------------------------------------------------------------------------- 00008 // DBOBJSTREAMERFACTORY.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 "utils/otl_utils.hpp" // OTL4 00045 00046 BEGIN_XDFLENGINE_NS 00047 00048 class DBOBJDefinitionNode; 00049 class SAXDBOBJDefinitionBuilder; 00050 class XMLProcessor; 00051 00052 00053 //============================================================================= 00054 // GLOBALS 00055 //----------------------------------------------------------------------------- 00056 static VAarray<DBOBJDefinitionNode*> g_pvaDefinitionsCache; 00057 00058 //============================================================================= 00059 // CLASS DBStreamerFactory 00060 //----------------------------------------------------------------------------- 00063 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00064 class XDFLENGINE_EXPORT DBOBJStreamerFactory: public DBStreamerFactory 00065 { 00066 00067 protected: //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00068 00069 00070 public: //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00071 00072 //_____________________________________________________________________ 00073 // DBOBJSTREAMERFACTORY 00074 //--------------------------------------------------------------------- 00075 ~DBOBJStreamerFactory(); 00076 00077 //_____________________________________________________________________ 00078 // CACHEDEFINITION 00079 //--------------------------------------------------------------------- 00080 void cacheDefinition( const char* p_pszName, DBOBJDefinitionNode* p_pDefinitionRoot); 00081 00082 //_____________________________________________________________________ 00083 // GETCACHEDDEFINITION 00084 //--------------------------------------------------------------------- 00085 const DBOBJDefinitionNode* getCachedDefinition( const char* p_pszName,XMLFlowContext* p_pStreamContext) const; 00086 00087 //_____________________________________________________________________ 00088 // GETCACHEDDEFINITION 00089 //--------------------------------------------------------------------- 00090 DBOBJDefinitionNode* buildDefinition( const char* p_pszName,XMLFlowContext* p_pStreamContext) const; 00091 00092 }; 00093 //============================================================================= 00094 00095 00096 00097 00098 END_XDFLENGINE_NS 00099 00100 #endif 00101