Skip to content

Commit

Permalink
#5231: Move XMLRegistry to RadiantCore module
Browse files Browse the repository at this point in the history
  • Loading branch information
codereader committed May 1, 2020
1 parent 631de3d commit 31dca86
Show file tree
Hide file tree
Showing 8 changed files with 50 additions and 34 deletions.
6 changes: 6 additions & 0 deletions include/iradiant.h
Expand Up @@ -39,6 +39,12 @@ class IRadiant :
*/
virtual IModuleRegistry& getModuleRegistry() = 0;

/**
* Loads and initialises all modules, starting up the
* application.
*/
virtual void startup() = 0;

virtual ~IRadiant() {}
};

Expand Down
19 changes: 18 additions & 1 deletion radiant/Radiant.cpp
Expand Up @@ -10,6 +10,7 @@
#include "log/LogWriter.h"
#include "log/LogFile.h"
#include "modulesystem/ModuleRegistry.h"
#include "modulesystem/StaticModule.h"

#ifndef POSIX
#include "settings/LanguageManager.h"
Expand Down Expand Up @@ -68,6 +69,22 @@ module::ModuleRegistry& Radiant::getModuleRegistry()
return *_moduleRegistry;
}

void Radiant::startup()
{
// Register the modules hosted in this binary
module::internal::StaticModuleList::RegisterModules();

try
{
module::GlobalModuleRegistry().loadAndInitialiseModules();
}
catch (const std::exception & e)
{
rConsole() << "Exception initialising modules: " << e.what() << std::endl;
abort();
}
}

void Radiant::createLogFile()
{
_logFile.reset(new applog::LogFile(_context.getSettingsPath() + "darkradiant.log"));
Expand Down Expand Up @@ -128,7 +145,7 @@ extern "C" DARKRADIANT_DLLEXPORT radiant::IRadiant* SYMBOL_CREATE_RADIANT(Applic
{
auto& instancePtr = radiant::Radiant::InstancePtr();

// Create a new instance, but ensure that this has only be called once
// Create a new instance, but ensure that this has only been called once
assert(!instancePtr);

instancePtr.reset(new radiant::Radiant(context));
Expand Down
1 change: 1 addition & 0 deletions radiant/Radiant.h
Expand Up @@ -29,6 +29,7 @@ class Radiant :

applog::ILogWriter& getLogWriter() override;
module::ModuleRegistry& getModuleRegistry() override;
void startup() override;

static std::shared_ptr<Radiant>& InstancePtr();

Expand Down
12 changes: 2 additions & 10 deletions radiant/RadiantApp.cpp
Expand Up @@ -143,16 +143,8 @@ void RadiantApp::onStartupEvent(wxCommandEvent& ev)
// Pick up all the statically defined modules and register them
module::internal::StaticModuleList::RegisterModules();

try
{
module::GlobalModuleRegistry().loadAndInitialiseModules();
}
catch (const std::exception& e)
{
rConsole() << "Exception thrown while initialising ModuleRegistry: "
<< e.what() << std::endl;
abort();
}
// Startup the application
_coreModule->get()->startup();

// Scope ends here, PIDFile is deleted by its destructor
}
5 changes: 0 additions & 5 deletions tools/msvc/DarkRadiant.vcxproj
Expand Up @@ -1003,8 +1003,6 @@
<ClCompile Include="..\..\radiant\vfs\Doom3FileSystem.cpp" />
<ClCompile Include="..\..\radiant\vfs\Doom3FileSystemModule.cpp" />
<ClCompile Include="..\..\radiant\vfs\ZipArchive.cpp" />
<ClCompile Include="..\..\radiant\xmlregistry\RegistryTree.cpp" />
<ClCompile Include="..\..\radiant\xmlregistry\XMLRegistry.cpp" />
<ClCompile Include="..\..\radiant\xyview\FloatingOrthoView.cpp" />
<ClCompile Include="..\..\radiant\xyview\GlobalXYWnd.cpp" />
<ClCompile Include="..\..\radiant\xyview\tools\BrushCreatorTool.cpp" />
Expand Down Expand Up @@ -1525,9 +1523,6 @@
<ClInclude Include="..\..\radiant\vfs\UnixPath.h" />
<ClInclude Include="..\..\radiant\vfs\ZipArchive.h" />
<ClInclude Include="..\..\radiant\vfs\ZipStreamUtils.h" />
<ClInclude Include="..\..\radiant\xmlregistry\Autosaver.h" />
<ClInclude Include="..\..\radiant\xmlregistry\RegistryTree.h" />
<ClInclude Include="..\..\radiant\xmlregistry\XMLRegistry.h" />
<ClInclude Include="..\..\radiant\xyview\FloatingOrthoView.h" />
<ClInclude Include="..\..\radiant\xyview\GlobalXYWnd.h" />
<ClInclude Include="..\..\radiant\xyview\tools\BrushCreatorTool.h" />
Expand Down
18 changes: 0 additions & 18 deletions tools/msvc/DarkRadiant.vcxproj.filters
Expand Up @@ -215,9 +215,6 @@
<Filter Include="src\image">
<UniqueIdentifier>{6dc9fca4-5702-4a00-9723-0382b177177f}</UniqueIdentifier>
</Filter>
<Filter Include="src\xmlregistry">
<UniqueIdentifier>{421b477e-6cea-461c-a852-0f1bfc769c60}</UniqueIdentifier>
</Filter>
<Filter Include="src\vfs">
<UniqueIdentifier>{fecc2923-448e-4630-aba6-57f8ccb49c33}</UniqueIdentifier>
</Filter>
Expand Down Expand Up @@ -1054,12 +1051,6 @@
<ClCompile Include="..\..\radiant\image\TGALoader.cpp">
<Filter>src\image</Filter>
</ClCompile>
<ClCompile Include="..\..\radiant\xmlregistry\RegistryTree.cpp">
<Filter>src\xmlregistry</Filter>
</ClCompile>
<ClCompile Include="..\..\radiant\xmlregistry\XMLRegistry.cpp">
<Filter>src\xmlregistry</Filter>
</ClCompile>
<ClCompile Include="..\..\radiant\vfs\DeflatedInputStream.cpp">
<Filter>src\vfs</Filter>
</ClCompile>
Expand Down Expand Up @@ -2553,15 +2544,6 @@
<ClInclude Include="..\..\radiant\image\TGALoader.h">
<Filter>src\image</Filter>
</ClInclude>
<ClInclude Include="..\..\radiant\xmlregistry\Autosaver.h">
<Filter>src\xmlregistry</Filter>
</ClInclude>
<ClInclude Include="..\..\radiant\xmlregistry\RegistryTree.h">
<Filter>src\xmlregistry</Filter>
</ClInclude>
<ClInclude Include="..\..\radiant\xmlregistry\XMLRegistry.h">
<Filter>src\xmlregistry</Filter>
</ClInclude>
<ClInclude Include="..\..\radiant\vfs\Archive.h">
<Filter>src\vfs</Filter>
</ClInclude>
Expand Down
5 changes: 5 additions & 0 deletions tools/msvc/DarkRadiantCore.vcxproj
Expand Up @@ -30,6 +30,8 @@
<ClCompile Include="..\..\radiant\modulesystem\StaticModule.cpp" />
<ClCompile Include="..\..\radiant\Radiant.cpp" />
<ClCompile Include="..\..\radiant\settings\LanguageManager.cpp" />
<ClCompile Include="..\..\radiant\xmlregistry\RegistryTree.cpp" />
<ClCompile Include="..\..\radiant\xmlregistry\XMLRegistry.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\radiant\log\COutRedirector.h" />
Expand All @@ -47,6 +49,9 @@
<ClInclude Include="..\..\radiant\modulesystem\StaticModule.h" />
<ClInclude Include="..\..\radiant\Radiant.h" />
<ClInclude Include="..\..\radiant\settings\LanguageManager.h" />
<ClInclude Include="..\..\radiant\xmlregistry\Autosaver.h" />
<ClInclude Include="..\..\radiant\xmlregistry\RegistryTree.h" />
<ClInclude Include="..\..\radiant\xmlregistry\XMLRegistry.h" />
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
Expand Down
18 changes: 18 additions & 0 deletions tools/msvc/DarkRadiantCore.vcxproj.filters
Expand Up @@ -14,6 +14,9 @@
<Filter Include="src\settings">
<UniqueIdentifier>{70832d89-edfe-4c33-bf07-290405d6cc28}</UniqueIdentifier>
</Filter>
<Filter Include="src\xmlregistry">
<UniqueIdentifier>{1fb975f1-2fb1-4e33-9ce5-384ed3f28258}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\radiant\modulesystem\ModuleLoader.cpp">
Expand Down Expand Up @@ -49,6 +52,12 @@
<ClCompile Include="..\..\radiant\settings\LanguageManager.cpp">
<Filter>src\settings</Filter>
</ClCompile>
<ClCompile Include="..\..\radiant\xmlregistry\RegistryTree.cpp">
<Filter>src\xmlregistry</Filter>
</ClCompile>
<ClCompile Include="..\..\radiant\xmlregistry\XMLRegistry.cpp">
<Filter>src\xmlregistry</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\radiant\modulesystem\ModuleLoader.h">
Expand Down Expand Up @@ -96,5 +105,14 @@
<ClInclude Include="..\..\radiant\settings\LanguageManager.h">
<Filter>src\settings</Filter>
</ClInclude>
<ClInclude Include="..\..\radiant\xmlregistry\Autosaver.h">
<Filter>src\xmlregistry</Filter>
</ClInclude>
<ClInclude Include="..\..\radiant\xmlregistry\RegistryTree.h">
<Filter>src\xmlregistry</Filter>
</ClInclude>
<ClInclude Include="..\..\radiant\xmlregistry\XMLRegistry.h">
<Filter>src\xmlregistry</Filter>
</ClInclude>
</ItemGroup>
</Project>

0 comments on commit 31dca86

Please sign in to comment.