Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Mar 12, 2013, 11:13:03 PM (11 years ago)
Author:
landauf
Message:

merged testing branch back to trunk. unbelievable it took me 13 months to finish this chore…

Location:
code/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • code/trunk

  • code/trunk/src/libraries/util/output/OutputManager.h

    r8858 r9550  
    4343
    4444#include "OutputDefinitions.h"
     45#include "AdditionalContextListener.h"
    4546
    4647namespace orxonox
     
    6162        Additionally OutputManager is used to register output contexts.
    6263    */
    63     class _UtilExport OutputManager
     64    class _UtilExport OutputManager : public AdditionalContextListener
    6465    {
    6566        public:
     67            OutputManager();
     68            OutputManager(const OutputManager&);
     69            virtual ~OutputManager();
     70
    6671            static OutputManager& getInstance();
    6772            static OutputManager& getInstanceAndCreateListeners();
    6873
    69             void pushMessage(OutputLevel level, const OutputContextContainer& context, const std::string& message);
     74            inline MemoryWriter* getMemoryWriter()   { return this->memoryWriterInstance_; }
     75            inline ConsoleWriter* getConsoleWriter() { return this->consoleWriterInstance_; }
     76            inline LogWriter* getLogWriter()         { return this->logWriterInstance_; }
    7077
    71             void registerListener(OutputListener* listener);
    72             void unregisterListener(OutputListener* listener);
     78            virtual void pushMessage(OutputLevel level, const OutputContextContainer& context, const std::string& message);
    7379
    74             void updateMasks();
    75             void updateCombinedLevelMask();
    76             void updateCombinedAdditionalContextsLevelMask();
    77             void updateCombinedAdditionalContextsMask();
     80            virtual void registerListener(OutputListener* listener);
     81            virtual void unregisterListener(OutputListener* listener);
     82
     83            virtual void updatedLevelMask(const OutputListener* listener)
     84                { this->updateCombinedLevelMask(); }
     85            virtual void updatedAdditionalContextsLevelMask(const OutputListener* listener)
     86                { this->updateCombinedAdditionalContextsLevelMask(); }
     87            virtual void updatedAdditionalContextsMask(const OutputListener* listener)
     88                { this->updateCombinedAdditionalContextsMask(); }
    7889
    7990            /**
     
    95106            std::string getDefaultPrefix(OutputLevel level, const OutputContextContainer& context) const;
    96107
     108            inline const std::vector<OutputListener*>& getListeners() const
     109                { return this->listeners_; }
     110
     111            inline OutputLevel getCombinedLevelMask() const { return this->combinedLevelMask_; }
     112            inline OutputLevel getCombinedAdditionalContextsLevelMask() const { return this->combinedAdditionalContextsLevelMask_; }
     113            inline OutputContextMask getCombinedAdditionalContextsMask() const { return this->combinedAdditionalContextsMask_; }
     114
    97115        private:
    98             OutputManager();
    99             OutputManager(const OutputManager&);
    100             ~OutputManager();
     116            void updateMasks();
     117            void updateCombinedLevelMask();
     118            void updateCombinedAdditionalContextsLevelMask();
     119            void updateCombinedAdditionalContextsMask();
    101120
    102121            std::vector<OutputListener*> listeners_;                            ///< List of all registered output listeners
     
    109128            std::map<std::string, OutputContextContainer> contextContainers_;   ///< Contains all contexts including sub-contexts and their containers
    110129            OutputContextSubID subcontextCounter_;                              ///< Counts the number of sub-contexts (and generates their IDs)
     130
     131            bool isInitialized_;                                                ///< Becomes true once the following instances were created
     132            MemoryWriter*  memoryWriterInstance_;                               ///< The main instance of MemoryWriter, managed by OutputManager
     133            ConsoleWriter* consoleWriterInstance_;                              ///< The main instance of ConsoleWriter, managed by OutputManager
     134            LogWriter*     logWriterInstance_;                                  ///< The main instance of LogWriter, managed by OutputManager
     135
     136        public:
     137            struct _UtilExport Testing
     138            {
     139                static SharedPtr<OutputManager>& getInstancePointer();
     140            };
    111141    };
    112142}
Note: See TracChangeset for help on using the changeset viewer.