|
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.
|