Revert "COMMON: Change way the Singleton instances are instantiated"

This reverts commit eefa72afa1.

With this patch ConfigManager is broken.
This commit is contained in:
Eugene Sandulenko 2017-07-10 21:17:41 +02:00
parent c61c0cb0ff
commit 940b2a20f1
36 changed files with 138 additions and 1 deletions

View file

@ -32,6 +32,11 @@
#include "backends/networking/sdl_net/localwebserver.h"
#endif
namespace Common {
DECLARE_SINGLETON(Cloud::CloudManager);
}
namespace Cloud {

View file

@ -28,6 +28,9 @@
#include "backends/fs/ds/ds-fs.h"
#include "dsmain.h" //for the isGBAMPAvailable() function
namespace Common {
DECLARE_SINGLETON(DSFilesystemFactory);
}
AbstractFSNode *DSFilesystemFactory::makeRootFileNode() const {
if (DS::isGBAMPAvailable()) {

View file

@ -28,6 +28,10 @@
#include "backends/fs/ps2/ps2-fs-factory.h"
#include "backends/fs/ps2/ps2-fs.h"
namespace Common {
DECLARE_SINGLETON(Ps2FilesystemFactory);
}
AbstractFSNode *Ps2FilesystemFactory::makeRootFileNode() const {
return new Ps2FilesystemNode();
}

View file

@ -44,6 +44,10 @@
#include <unistd.h>
namespace Common {
DECLARE_SINGLETON(PSPFilesystemFactory);
}
AbstractFSNode *PSPFilesystemFactory::makeRootFileNode() const {
return new PSPFilesystemNode();
}

View file

@ -43,6 +43,10 @@
#include <smb.h>
#endif
namespace Common {
DECLARE_SINGLETON(WiiFilesystemFactory);
}
WiiFilesystemFactory::WiiFilesystemFactory() :
_dvdMounted(false),
_smbMounted(false),

View file

@ -27,6 +27,10 @@
#include "common/textconsole.h"
#include "common/util.h"
namespace Common {
DECLARE_SINGLETON(OpenGL::ShaderManager);
}
namespace OpenGL {
namespace {

View file

@ -29,6 +29,12 @@
#include "common/timer.h"
#include <curl/curl.h>
namespace Common {
DECLARE_SINGLETON(Networking::ConnectionManager);
}
namespace Networking {
ConnectionManager::ConnectionManager(): _multi(0), _timerStarted(false), _frame(0) {

View file

@ -51,6 +51,9 @@
namespace Common {
class MemoryReadWriteStream;
DECLARE_SINGLETON(Networking::LocalWebserver);
}
namespace Networking {

View file

@ -62,6 +62,10 @@ const OSystem::GraphicsMode DisplayManager::_supportedModes[] = {
// Class VramAllocator -----------------------------------
namespace Common {
DECLARE_SINGLETON(VramAllocator);
}
//#define __PSP_DEBUG_FUNCS__ /* For debugging the stack */
//#define __PSP_DEBUG_PRINT__

View file

@ -30,6 +30,10 @@
//#define __PSP_DEBUG_PRINT__
#include "backends/platform/psp/trace.h"
namespace Common {
DECLARE_SINGLETON(PowerManager);
}
// Function to debug the Power Manager (we have no output to screen)
inline void PowerManager::debugPM() {
PSP_DEBUG_PRINT("PM status[%d]. Listcount[%d]. CriticalCount[%d]. ThreadId[%x]. Error[%d]\n",

View file

@ -34,6 +34,9 @@
// Class PspRtc ---------------------------------------------------------------
namespace Common {
DECLARE_SINGLETON(PspRtc);
}
void PspRtc::init() { // init our starting ticks
uint32 ticks[2];

View file

@ -29,6 +29,10 @@
#include "common/util.h"
#include <malloc.h>
namespace Common {
DECLARE_SINGLETON(ELFMemoryManager);
}
ELFMemoryManager::ELFMemoryManager() :
_heap(0), _heapSize(0), _heapAlign(0),
_trackAllocs(false), _measuredSize(0), _measuredAlign(0),

View file

@ -33,6 +33,10 @@ extern char __plugin_hole_start; // Indicates start of hole in program file for
extern char __plugin_hole_end; // Indicates end of hole in program file
extern char _gp[]; // Value of gp register
namespace Common {
DECLARE_SINGLETON(ShortSegmentManager); // For singleton
}
ShortSegmentManager::ShortSegmentManager() {
_shortsStart = &__plugin_hole_start ; //shorts segment begins at the plugin hole we made when linking
_shortsEnd = &__plugin_hole_end; //and ends at the end of that hole.

View file

@ -446,6 +446,10 @@ void PluginManager::addToPluginsInMemList(Plugin *plugin) {
#include "engines/metaengine.h"
namespace Common {
DECLARE_SINGLETON(EngineManager);
}
/**
* This function works for both cached and uncached PluginManagers.
* For the cached version, most of the logic here will short circuit.
@ -535,6 +539,10 @@ const EnginePlugin::List &EngineManager::getPlugins() const {
#include "audio/musicplugin.h"
namespace Common {
DECLARE_SINGLETON(MusicManager);
}
const MusicPlugin::List &MusicManager::getPlugins() const {
return (const MusicPlugin::List &)PluginManager::instance().getPlugins(PLUGIN_TYPE_MUSIC);
}

View file

@ -284,4 +284,6 @@ void SearchManager::clear() {
addDirectory(".", ".", -2);
}
DECLARE_SINGLETON(SearchManager);
} // namespace Common

View file

@ -36,6 +36,8 @@ static bool isValidDomainName(const Common::String &domName) {
namespace Common {
DECLARE_SINGLETON(ConfigManager);
char const *const ConfigManager::kApplicationDomain = "scummvm";
char const *const ConfigManager::kTransientDomain = "__TRANSIENT";

View file

@ -33,6 +33,8 @@ namespace Common {
/** Helper null context instance */
CoroContext nullContext = NULL;
DECLARE_SINGLETON(CoroutineScheduler);
#ifdef COROUTINE_DEBUG
namespace {
/** Count of active coroutines */

View file

@ -34,6 +34,8 @@ bool gDebugChannelsOnly = false;
namespace Common {
DECLARE_SINGLETON(DebugManager);
namespace {
struct DebugLevelComperator {

View file

@ -24,6 +24,8 @@
#include "common/system.h"
namespace Common {
DECLARE_SINGLETON(OSDMessageQueue);
OSDMessageQueue::OSDMessageQueue() : _lastUpdate(0) {
}

View file

@ -88,7 +88,14 @@ protected:
static T *_singleton;
};
template<class T> T *Singleton<T>::_singleton = 0;
/**
* Note that you need to use this macro from the Common namespace.
*
* This is because C++ requires initial explicit specialization
* to be placed in the same namespace as the template.
*/
#define DECLARE_SINGLETON(T) \
template<> T *Singleton<T>::_singleton = 0
} // End of namespace Common

View file

@ -40,6 +40,8 @@
namespace Common {
DECLARE_SINGLETON(TranslationManager);
bool operator<(const TLanguage &l, const TLanguage &r) {
return strcmp(l.name, r.name) < 0;
}

View file

@ -133,6 +133,10 @@ bool ChainedGamesManager::pop(Common::String &target, int &slot) {
return true;
}
namespace Common {
DECLARE_SINGLETON(ChainedGamesManager);
}
Engine::Engine(OSystem *syst)
: _system(syst),
_mixer(_system->getMixer()),

View file

@ -31,6 +31,10 @@
#include "common/endian.h"
#include "audio/midiparser.h"
namespace Common {
DECLARE_SINGLETON(Lure::SoundManager);
}
namespace Lure {
//#define SOUND_CROP_CHANNELS

View file

@ -30,6 +30,10 @@
#include "pegasus/gamestate.h"
#include "pegasus/scoring.h"
namespace Common {
DECLARE_SINGLETON(Pegasus::GameStateManager);
}
namespace Pegasus {
Common::Error GameStateManager::writeGameState(Common::WriteStream *stream) {

View file

@ -30,6 +30,10 @@
#include "pegasus/input.h"
#include "pegasus/pegasus.h"
namespace Common {
DECLARE_SINGLETON(Pegasus::InputDeviceManager);
}
namespace Pegasus {
InputDeviceManager::InputDeviceManager() {

View file

@ -34,6 +34,10 @@
#include "sword25/gfx/animationtemplateregistry.h"
#include "sword25/gfx/animationtemplate.h"
namespace Common {
DECLARE_SINGLETON(Sword25::AnimationTemplateRegistry);
}
namespace Sword25 {
bool AnimationTemplateRegistry::persist(OutputPersistenceBlock &writer) {

View file

@ -34,6 +34,10 @@
#include "sword25/math/regionregistry.h"
#include "sword25/math/region.h"
namespace Common {
DECLARE_SINGLETON(Sword25::RegionRegistry);
}
namespace Sword25 {
bool RegionRegistry::persist(OutputPersistenceBlock &writer) {

View file

@ -50,6 +50,9 @@
#include "sword25/gfx/animationtemplateregistry.h" // Needed so we can destroy the singleton
#include "sword25/gfx/renderobjectregistry.h" // Needed so we can destroy the singleton
namespace Common {
DECLARE_SINGLETON(Sword25::RenderObjectRegistry);
}
#include "sword25/math/regionregistry.h" // Needed so we can destroy the singleton
namespace Sword25 {

View file

@ -25,6 +25,10 @@
#include "testbed/config-params.h"
namespace Common {
DECLARE_SINGLETON(Testbed::ConfigParams);
}
namespace Testbed {
ConfigParams::ConfigParams() {

View file

@ -32,6 +32,9 @@
#include "engines/wintermute/wintermute.h"
#include "engines/wintermute/system/sys_class_registry.h"
#include "common/system.h"
namespace Common {
DECLARE_SINGLETON(Wintermute::BaseEngine);
}
namespace Wintermute {

View file

@ -25,6 +25,10 @@
#include "common/system.h"
#include "common/stack.h"
namespace Common {
DECLARE_SINGLETON(Graphics::CursorManager);
}
namespace Graphics {
CursorManager::~CursorManager() {

View file

@ -26,6 +26,10 @@
#include "common/translation.h"
namespace Common {
DECLARE_SINGLETON(Graphics::FontManager);
}
namespace Graphics {
FORWARD_DECLARE_FONT(g_sysfont);

View file

@ -668,5 +668,9 @@ Font *loadTTFFont(Common::SeekableReadStream &stream, int size, TTFSizeMode size
} // End of namespace Graphics
namespace Common {
DECLARE_SINGLETON(Graphics::TTFLibrary);
} // End of namespace Common
#endif

View file

@ -86,6 +86,10 @@
#include "graphics/surface.h"
#include "graphics/yuv_to_rgb.h"
namespace Common {
DECLARE_SINGLETON(Graphics::YUVToRGBManager);
}
namespace Graphics {
class YUVToRGBLookup {

View file

@ -25,6 +25,10 @@
#ifdef ENABLE_EVENTRECORDER
namespace Common {
DECLARE_SINGLETON(GUI::EventRecorder);
}
#include "common/debug-channels.h"
#include "backends/timer/sdl/sdl-timer.h"
#include "backends/mixer/sdl/sdl-mixer.h"

View file

@ -41,6 +41,10 @@
#include "graphics/cursorman.h"
namespace Common {
DECLARE_SINGLETON(GUI::GuiManager);
}
namespace GUI {
enum {