From: <hv...@us...> - 2014-11-26 09:45:46
|
Revision: 60294 http://sourceforge.net/p/firebird/code/60294 Author: hvlad Date: 2014-11-26 09:45:42 +0000 (Wed, 26 Nov 2014) Log Message: ----------- Move ConfigRoot from common to the yvalve. Add its methods to the public interface ConfigManager. Now all plug-ins have the same root\install folders. It should fix CORE-4581 and related issues. MSVC10 and MSVC12 builds are updated, Posix and Darwin builds will follow. Modified Paths: -------------- firebird/trunk/builds/win32/msvc10/common.vcxproj firebird/trunk/builds/win32/msvc10/common.vcxproj.filters firebird/trunk/builds/win32/msvc10/yvalve.vcxproj firebird/trunk/builds/win32/msvc10/yvalve.vcxproj.filters firebird/trunk/builds/win32/msvc12/common.vcxproj firebird/trunk/builds/win32/msvc12/common.vcxproj.filters firebird/trunk/builds/win32/msvc12/yvalve.vcxproj firebird/trunk/builds/win32/msvc12/yvalve.vcxproj.filters firebird/trunk/src/common/config/config.cpp firebird/trunk/src/include/firebird/FirebirdInterface.idl firebird/trunk/src/include/firebird/IdlFbInterfaces.h firebird/trunk/src/jrd/trace/TraceConfigStorage.cpp firebird/trunk/src/jrd/trace/TraceObjects.cpp firebird/trunk/src/yvalve/PluginManager.cpp firebird/trunk/src/yvalve/config/os/darwin/config_root.cpp firebird/trunk/src/yvalve/config/os/posix/config_root.cpp firebird/trunk/src/yvalve/config/os/win32/config_root.cpp Added Paths: ----------- firebird/trunk/src/yvalve/config/ firebird/trunk/src/yvalve/config/os/ Removed Paths: ------------- firebird/trunk/src/common/config/os/ Modified: firebird/trunk/builds/win32/msvc10/common.vcxproj =================================================================== --- firebird/trunk/builds/win32/msvc10/common.vcxproj 2014-11-26 06:22:19 UTC (rev 60293) +++ firebird/trunk/builds/win32/msvc10/common.vcxproj 2014-11-26 09:45:42 UTC (rev 60294) @@ -49,7 +49,6 @@ <ClCompile Include="..\..\..\src\common\config\ConfigCache.cpp" /> <ClCompile Include="..\..\..\src\common\config\config_file.cpp" /> <ClCompile Include="..\..\..\src\common\config\dir_list.cpp" /> - <ClCompile Include="..\..\..\src\common\config\os\win32\config_root.cpp" /> <ClCompile Include="..\..\..\src\common\cvt.cpp" /> <ClCompile Include="..\..\..\src\common\db_alias.cpp" /> <ClCompile Include="..\..\..\src\common\dllinst.cpp" /> @@ -143,7 +142,6 @@ <ClInclude Include="..\..\..\src\common\config\ConfigCache.h" /> <ClInclude Include="..\..\..\src\common\config\config_file.h" /> <ClInclude Include="..\..\..\src\common\config\dir_list.h" /> - <ClInclude Include="..\..\..\src\common\config\os\config_root.h" /> <ClInclude Include="..\..\..\src\common\CsConvert.h" /> <ClInclude Include="..\..\..\src\common\cvt.h" /> <ClInclude Include="..\..\..\src\common\db_alias.h" /> Modified: firebird/trunk/builds/win32/msvc10/common.vcxproj.filters =================================================================== --- firebird/trunk/builds/win32/msvc10/common.vcxproj.filters 2014-11-26 06:22:19 UTC (rev 60293) +++ firebird/trunk/builds/win32/msvc10/common.vcxproj.filters 2014-11-26 09:45:42 UTC (rev 60294) @@ -153,9 +153,6 @@ <ClCompile Include="..\..\..\src\common\config\dir_list.cpp"> <Filter>config</Filter> </ClCompile> - <ClCompile Include="..\..\..\src\common\config\os\win32\config_root.cpp"> - <Filter>config</Filter> - </ClCompile> <ClCompile Include="..\..\..\src\common\os\win32\fbsyslog.cpp"> <Filter>common</Filter> </ClCompile> @@ -452,9 +449,6 @@ <ClInclude Include="..\..\..\src\common\config\dir_list.h"> <Filter>headers</Filter> </ClInclude> - <ClInclude Include="..\..\..\src\common\config\os\config_root.h"> - <Filter>headers</Filter> - </ClInclude> <ClInclude Include="..\..\..\src\common\os\divorce.h"> <Filter>headers</Filter> </ClInclude> Modified: firebird/trunk/builds/win32/msvc10/yvalve.vcxproj =================================================================== --- firebird/trunk/builds/win32/msvc10/yvalve.vcxproj 2014-11-26 06:22:19 UTC (rev 60293) +++ firebird/trunk/builds/win32/msvc10/yvalve.vcxproj 2014-11-26 09:45:42 UTC (rev 60294) @@ -28,6 +28,7 @@ <ClCompile Include="..\..\..\src\remote\client\BlrFromMessage.cpp" /> <ClCompile Include="..\..\..\src\remote\client\interface.cpp" /> <ClCompile Include="..\..\..\src\yvalve\alt.cpp" /> + <ClCompile Include="..\..\..\src\yvalve\config\os\win32\config_root.cpp" /> <ClCompile Include="..\..\..\src\yvalve\DistributedTransaction.cpp" /> <ClCompile Include="..\..\..\src\yvalve\gds.cpp" /> <ClCompile Include="..\..\..\src\yvalve\keywords.cpp" /> Modified: firebird/trunk/builds/win32/msvc10/yvalve.vcxproj.filters =================================================================== --- firebird/trunk/builds/win32/msvc10/yvalve.vcxproj.filters 2014-11-26 06:22:19 UTC (rev 60293) +++ firebird/trunk/builds/win32/msvc10/yvalve.vcxproj.filters 2014-11-26 09:45:42 UTC (rev 60294) @@ -81,6 +81,9 @@ <ClCompile Include="..\..\..\src\remote\client\BlrFromMessage.cpp"> <Filter>Remote client</Filter> </ClCompile> + <ClCompile Include="..\..\..\src\yvalve\config\os\win32\config_root.cpp"> + <Filter>source</Filter> + </ClCompile> </ItemGroup> <ItemGroup> <ClInclude Include="..\..\..\src\yvalve\why_proto.h"> Modified: firebird/trunk/builds/win32/msvc12/common.vcxproj =================================================================== --- firebird/trunk/builds/win32/msvc12/common.vcxproj 2014-11-26 06:22:19 UTC (rev 60293) +++ firebird/trunk/builds/win32/msvc12/common.vcxproj 2014-11-26 09:45:42 UTC (rev 60294) @@ -49,7 +49,6 @@ <ClCompile Include="..\..\..\src\common\config\ConfigCache.cpp" /> <ClCompile Include="..\..\..\src\common\config\config_file.cpp" /> <ClCompile Include="..\..\..\src\common\config\dir_list.cpp" /> - <ClCompile Include="..\..\..\src\common\config\os\win32\config_root.cpp" /> <ClCompile Include="..\..\..\src\common\cvt.cpp" /> <ClCompile Include="..\..\..\src\common\db_alias.cpp" /> <ClCompile Include="..\..\..\src\common\dllinst.cpp" /> @@ -143,7 +142,6 @@ <ClInclude Include="..\..\..\src\common\config\ConfigCache.h" /> <ClInclude Include="..\..\..\src\common\config\config_file.h" /> <ClInclude Include="..\..\..\src\common\config\dir_list.h" /> - <ClInclude Include="..\..\..\src\common\config\os\config_root.h" /> <ClInclude Include="..\..\..\src\common\CsConvert.h" /> <ClInclude Include="..\..\..\src\common\cvt.h" /> <ClInclude Include="..\..\..\src\common\db_alias.h" /> Modified: firebird/trunk/builds/win32/msvc12/common.vcxproj.filters =================================================================== --- firebird/trunk/builds/win32/msvc12/common.vcxproj.filters 2014-11-26 06:22:19 UTC (rev 60293) +++ firebird/trunk/builds/win32/msvc12/common.vcxproj.filters 2014-11-26 09:45:42 UTC (rev 60294) @@ -153,9 +153,6 @@ <ClCompile Include="..\..\..\src\common\config\dir_list.cpp"> <Filter>config</Filter> </ClCompile> - <ClCompile Include="..\..\..\src\common\config\os\win32\config_root.cpp"> - <Filter>config</Filter> - </ClCompile> <ClCompile Include="..\..\..\src\common\os\win32\fbsyslog.cpp"> <Filter>common</Filter> </ClCompile> @@ -452,9 +449,6 @@ <ClInclude Include="..\..\..\src\common\config\dir_list.h"> <Filter>headers</Filter> </ClInclude> - <ClInclude Include="..\..\..\src\common\config\os\config_root.h"> - <Filter>headers</Filter> - </ClInclude> <ClInclude Include="..\..\..\src\common\os\divorce.h"> <Filter>headers</Filter> </ClInclude> Modified: firebird/trunk/builds/win32/msvc12/yvalve.vcxproj =================================================================== --- firebird/trunk/builds/win32/msvc12/yvalve.vcxproj 2014-11-26 06:22:19 UTC (rev 60293) +++ firebird/trunk/builds/win32/msvc12/yvalve.vcxproj 2014-11-26 09:45:42 UTC (rev 60294) @@ -28,6 +28,7 @@ <ClCompile Include="..\..\..\src\remote\client\BlrFromMessage.cpp" /> <ClCompile Include="..\..\..\src\remote\client\interface.cpp" /> <ClCompile Include="..\..\..\src\yvalve\alt.cpp" /> + <ClCompile Include="..\..\..\src\yvalve\config\os\win32\config_root.cpp" /> <ClCompile Include="..\..\..\src\yvalve\DistributedTransaction.cpp" /> <ClCompile Include="..\..\..\src\yvalve\gds.cpp" /> <ClCompile Include="..\..\..\src\yvalve\keywords.cpp" /> Modified: firebird/trunk/builds/win32/msvc12/yvalve.vcxproj.filters =================================================================== --- firebird/trunk/builds/win32/msvc12/yvalve.vcxproj.filters 2014-11-26 06:22:19 UTC (rev 60293) +++ firebird/trunk/builds/win32/msvc12/yvalve.vcxproj.filters 2014-11-26 09:45:42 UTC (rev 60294) @@ -81,6 +81,9 @@ <ClCompile Include="..\..\..\src\remote\client\BlrFromMessage.cpp"> <Filter>Remote client</Filter> </ClCompile> + <ClCompile Include="..\..\..\src\yvalve\config\os\win32\config_root.cpp"> + <Filter>source</Filter> + </ClCompile> </ItemGroup> <ItemGroup> <ClInclude Include="..\..\..\src\yvalve\why_proto.h"> Modified: firebird/trunk/src/common/config/config.cpp =================================================================== --- firebird/trunk/src/common/config/config.cpp 2014-11-26 06:22:19 UTC (rev 60293) +++ firebird/trunk/src/common/config/config.cpp 2014-11-26 09:45:42 UTC (rev 60294) @@ -24,10 +24,10 @@ #include "../common/config/config.h" #include "../common/config/config_file.h" -#include "../common/config/os/config_root.h" #include "../common/classes/init.h" #include "../common/dllinst.h" #include "../common/os/fbsyslog.h" +#include "../common/utils_proto.h" #include "../jrd/constants.h" #include "firebird/Interface.h" @@ -106,13 +106,6 @@ Firebird::InitInstance<ConfigImpl> firebirdConf; -/****************************************************************************** - * - * Static instance of the root and install directories detector - */ - -Firebird::InitInstance<ConfigRoot> rootDetector; - } // anonymous namespace @@ -330,7 +323,7 @@ const char* Config::getInstallDirectory() { - return rootDetector().getInstallDirectory(); + return fb_get_master_interface()->getConfigManager()->getInstallDirectory(); } static Firebird::PathName* rootFromCommandLine = 0; @@ -355,7 +348,7 @@ return rootFromCommandLine->c_str(); } - return rootDetector().getRootDirectory();; + return fb_get_master_interface()->getConfigManager()->getRootDirectory(); } Modified: firebird/trunk/src/include/firebird/FirebirdInterface.idl =================================================================== --- firebird/trunk/src/include/firebird/FirebirdInterface.idl 2014-11-26 06:22:19 UTC (rev 60293) +++ firebird/trunk/src/include/firebird/FirebirdInterface.idl 2014-11-26 09:45:42 UTC (rev 60294) @@ -301,6 +301,8 @@ FirebirdConf getFirebirdConf(); FirebirdConf getDatabaseConf(const string dbName); Config getPluginConfig(const string configuredPlugin); + const string getInstallDirectory(); + const string getRootDirectory(); } Modified: firebird/trunk/src/include/firebird/IdlFbInterfaces.h =================================================================== --- firebird/trunk/src/include/firebird/IdlFbInterfaces.h 2014-11-26 06:22:19 UTC (rev 60293) +++ firebird/trunk/src/include/firebird/IdlFbInterfaces.h 2014-11-26 09:45:42 UTC (rev 60294) @@ -837,6 +837,8 @@ FirebirdConf* (CLOOP_CARG *getFirebirdConf)(ConfigManager* self) throw(); FirebirdConf* (CLOOP_CARG *getDatabaseConf)(ConfigManager* self, const char* dbName) throw(); Config* (CLOOP_CARG *getPluginConfig)(ConfigManager* self, const char* configuredPlugin) throw(); + const char* (CLOOP_CARG *getInstallDirectory)(ConfigManager* self) throw(); + const char* (CLOOP_CARG *getRootDirectory)(ConfigManager* self) throw(); }; protected: @@ -894,6 +896,18 @@ Config* ret = static_cast<VTable*>(this->cloopVTable)->getPluginConfig(this, configuredPlugin); return ret; } + + const char* getInstallDirectory() + { + const char* ret = static_cast<VTable*>(this->cloopVTable)->getInstallDirectory(this); + return ret; + } + + const char* getRootDirectory() + { + const char* ret = static_cast<VTable*>(this->cloopVTable)->getRootDirectory(this); + return ret; + } }; class EventCallback : public ReferenceCounted @@ -6137,6 +6151,8 @@ this->getFirebirdConf = &Name::cloopgetFirebirdConfDispatcher; this->getDatabaseConf = &Name::cloopgetDatabaseConfDispatcher; this->getPluginConfig = &Name::cloopgetPluginConfigDispatcher; + this->getInstallDirectory = &Name::cloopgetInstallDirectoryDispatcher; + this->getRootDirectory = &Name::cloopgetRootDirectoryDispatcher; } } vTable; @@ -6195,6 +6211,32 @@ } } + static const char* CLOOP_CARG cloopgetInstallDirectoryDispatcher(ConfigManager* self) throw() + { + try + { + return static_cast<Name*>(self)->Name::getInstallDirectory(); + } + catch (...) + { + Policy::catchException(0); + return static_cast<const char*>(0); + } + } + + static const char* CLOOP_CARG cloopgetRootDirectoryDispatcher(ConfigManager* self) throw() + { + try + { + return static_cast<Name*>(self)->Name::getRootDirectory(); + } + catch (...) + { + Policy::catchException(0); + return static_cast<const char*>(0); + } + } + static PluginModule* CLOOP_CARG cloopgetModuleDispatcher(Versioned* self) throw() { try @@ -6226,6 +6268,8 @@ virtual FirebirdConf* getFirebirdConf() = 0; virtual FirebirdConf* getDatabaseConf(const char* dbName) = 0; virtual Config* getPluginConfig(const char* configuredPlugin) = 0; + virtual const char* getInstallDirectory() = 0; + virtual const char* getRootDirectory() = 0; }; template <typename Name, typename Base> Modified: firebird/trunk/src/jrd/trace/TraceConfigStorage.cpp =================================================================== --- firebird/trunk/src/jrd/trace/TraceConfigStorage.cpp 2014-11-26 06:22:19 UTC (rev 60293) +++ firebird/trunk/src/jrd/trace/TraceConfigStorage.cpp 2014-11-26 09:45:42 UTC (rev 60294) @@ -35,7 +35,6 @@ #include "../../common/isc_s_proto.h" #include "../../jrd/jrd.h" #include "../../common/os/path_utils.h" -#include "../../common/config/os/config_root.h" #include "../../common/os/os_utils.h" #include "../../jrd/trace/TraceConfigStorage.h" Modified: firebird/trunk/src/jrd/trace/TraceObjects.cpp =================================================================== --- firebird/trunk/src/jrd/trace/TraceObjects.cpp 2014-11-26 06:22:19 UTC (rev 60293) +++ firebird/trunk/src/jrd/trace/TraceObjects.cpp 2014-11-26 09:45:42 UTC (rev 60294) @@ -45,7 +45,6 @@ #include "../../jrd/opt_proto.h" #include "../../jrd/pag_proto.h" #include "../../common/os/path_utils.h" -#include "../../common/config/os/config_root.h" #include "../../dsql/dsql_proto.h" #ifdef WIN_NT Modified: firebird/trunk/src/yvalve/PluginManager.cpp =================================================================== --- firebird/trunk/src/yvalve/PluginManager.cpp 2014-11-26 06:22:19 UTC (rev 60293) +++ firebird/trunk/src/yvalve/PluginManager.cpp 2014-11-26 09:45:42 UTC (rev 60294) @@ -42,6 +42,9 @@ #include "../common/classes/GenericMap.h" #include "../common/db_alias.h" +#include "../yvalve/config/os/config_root.h" + + // register builtin plugins #include "../remote/client/interface.h" @@ -1195,6 +1198,14 @@ namespace Firebird { +/****************************************************************************** +* +* Static instance of the root and install directories detector +*/ + +InitInstance<ConfigRoot> rootDetector; + + // Generic access to all config interfaces class ConfigManager : public AutoIface<Api::ConfigManagerImpl<ConfigManager> > { @@ -1254,6 +1265,16 @@ return NULL; } } + + const char* getInstallDirectory() + { + return rootDetector().getInstallDirectory(); + } + + const char* getRootDirectory() + { + return rootDetector().getRootDirectory(); + } }; static ConfigManager configManager; Modified: firebird/trunk/src/yvalve/config/os/darwin/config_root.cpp =================================================================== --- firebird/trunk/src/common/config/os/darwin/config_root.cpp 2014-11-25 13:24:10 UTC (rev 60291) +++ firebird/trunk/src/yvalve/config/os/darwin/config_root.cpp 2014-11-26 09:45:42 UTC (rev 60294) @@ -33,7 +33,7 @@ #include "fb_types.h" #include "../common/classes/fb_string.h" -#include "../common/config/os/config_root.h" +#include "../yvalve/config/os/config_root.h" #include "../common/os/path_utils.h" #include "../common/file_params.h" Modified: firebird/trunk/src/yvalve/config/os/posix/config_root.cpp =================================================================== --- firebird/trunk/src/common/config/os/posix/config_root.cpp 2014-11-25 13:24:10 UTC (rev 60291) +++ firebird/trunk/src/yvalve/config/os/posix/config_root.cpp 2014-11-26 09:45:42 UTC (rev 60294) @@ -31,7 +31,7 @@ #include "fb_types.h" #include "../common/classes/fb_string.h" -#include "../common/config/os/config_root.h" +#include "../yvalve/config/os/config_root.h" #include "../common/os/path_utils.h" #include "binreloc.h" Modified: firebird/trunk/src/yvalve/config/os/win32/config_root.cpp =================================================================== --- firebird/trunk/src/common/config/os/win32/config_root.cpp 2014-11-25 13:24:10 UTC (rev 60291) +++ firebird/trunk/src/yvalve/config/os/win32/config_root.cpp 2014-11-26 09:45:42 UTC (rev 60294) @@ -28,7 +28,7 @@ #include "fb_types.h" #include "../../../../common/classes/fb_string.h" #include "../../../../common/dllinst.h" -#include "../../../../common/config/os/config_root.h" +#include "../../../../yvalve/config/os/config_root.h" using Firebird::PathName; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |