Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Apr 23, 2015, 10:44:57 PM (9 years ago)
Author:
landauf
Message:

Loader is now a singleton instead of a static class. fixes issue with statically initialized ClassTreeMask (which again requires a BaseObject-Identifier)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/core7/src/libraries/core/Loader.h

    r8858 r10392  
    4444#include <map>
    4545#include <vector>
     46
     47#include "util/Singleton.h"
    4648#include "ClassTreeMask.h"
    4749
    4850namespace orxonox
    4951{
    50     class _CoreExport Loader
     52    class _CoreExport Loader : public Singleton<Loader>
    5153    {
     54        friend class Singleton<Loader>;
     55
    5256        public:
    53             static bool open(const XMLFile* file, const ClassTreeMask& mask = ClassTreeMask(), bool bVerbose = true);
    54             static void close();
    55             static void close(const XMLFile* file);
     57            bool open(const XMLFile* file, const ClassTreeMask& mask = ClassTreeMask(), bool bVerbose = true);
     58            void close();
     59            void close(const XMLFile* file);
    5660
    57             static void add(const XMLFile* file, const ClassTreeMask& mask = ClassTreeMask());
    58             static void remove(const XMLFile* file);
     61            void add(const XMLFile* file, const ClassTreeMask& mask = ClassTreeMask());
     62            void remove(const XMLFile* file);
    5963
    60             static bool load(const ClassTreeMask& mask = ClassTreeMask(), bool bVerbose = true);
    61             static void unload(const ClassTreeMask& mask = ClassTreeMask());
    62             static bool reload(const ClassTreeMask& mask = ClassTreeMask(), bool bVerbose = true);
     64            bool load(const ClassTreeMask& mask = ClassTreeMask(), bool bVerbose = true);
     65            void unload(const ClassTreeMask& mask = ClassTreeMask());
     66            bool reload(const ClassTreeMask& mask = ClassTreeMask(), bool bVerbose = true);
    6367
    64             static bool load(const XMLFile* file, const ClassTreeMask& mask = ClassTreeMask(),
    65                              bool bVerbose = true, bool bRemoveLuaTags = false);
    66             static void unload(const XMLFile* file, const ClassTreeMask& mask = ClassTreeMask());
    67             static bool reload(const XMLFile* file, const ClassTreeMask& mask = ClassTreeMask(), bool bVerbose = true);
     68            bool load(const XMLFile* file, const ClassTreeMask& mask = ClassTreeMask(),
     69                      bool bVerbose = true, bool bRemoveLuaTags = false);
     70            void unload(const XMLFile* file, const ClassTreeMask& mask = ClassTreeMask());
     71            bool reload(const XMLFile* file, const ClassTreeMask& mask = ClassTreeMask(), bool bVerbose = true);
    6872
    6973            static std::string replaceLuaTags(const std::string& text);
    7074            static std::string removeLuaTags(const std::string& text);
    7175
    72             static ClassTreeMask currentMask_s;
     76            ClassTreeMask currentMask_;
    7377
    7478        private:
    7579            static bool getLuaTags(const std::string& text, std::map<size_t, bool>& luaTags);
    7680
    77             static std::vector<std::pair<const XMLFile*, ClassTreeMask> > files_s;
     81            std::vector<std::pair<const XMLFile*, ClassTreeMask> > files_;
     82
     83            static Loader* singletonPtr_s;
    7884    };
    7985}
Note: See TracChangeset for help on using the changeset viewer.