00001 /* IBM Source Code */ 00002 /* (C) Copyright IBM Corp. 2009, 2012 */ 00003 /* Licensed Materials - Property of IBM */ 00004 /* US Government Users Restricted Rights - Use duplication or disclosure restricted by GSA Schedule Contract with IBM Corp. */ 00005 00006 #ifndef CUSTOMDB_TOOLBOX_H 00007 #define CUSTOMDB_TOOLBOX_H 00008 00034 #include "dca/dca_base.h" 00035 #include <string> 00036 #include <set> 00037 00038 namespace dca { 00039 00040 class custommodule_p; 00041 class customdb_p; 00042 00048 typedef std::set< int > CategorySet; 00049 00086 class UrlCustomDb 00087 { 00088 public: 00090 UrlCustomDb(); 00091 UrlCustomDb( const UrlCustomDb& rhi ); 00092 UrlCustomDb& operator = (const UrlCustomDb& rhi ); 00093 virtual ~UrlCustomDb(); 00095 00102 bool getUrl( const std::string& aUrlString, CategorySet& foundCategories ) const; 00118 void setUrl( const std::string& aUrlString, const CategorySet& categories ); 00124 void removeUrl( const std::string& aUrlString ); 00125 00127 customdb_p *_p; 00128 }; 00129 00135 class UrlCustomDbModule 00136 { 00137 public: 00139 static DCA_MODULE_ID_TYPE ID; 00140 00148 static UrlCustomDbModule create( const DcaInstance& aDcaInstance, const License& aLicense ); 00149 00151 UrlCustomDbModule(); 00152 UrlCustomDbModule( const UrlCustomDbModule& rhi ); 00153 UrlCustomDbModule& operator = (const UrlCustomDbModule& rhi ); 00154 virtual ~UrlCustomDbModule(); 00156 00166 CategoriesInfo createCategoriesInfo( const std::string& categoriesXmlFolder ) const; 00167 00177 FunctionResult createCustomDb( const std::string& aDatabaseFolder ) const; 00178 00186 UrlCustomDb openCustomDb( const DbConnection& aDbConnection ) const; 00187 00189 PRIVATE_PTR custommodule_p *_p; 00190 }; 00191 00192 } 00193 00194 #endif