Ignore:
Timestamp:
04/27/15 04:44:23 (9 years ago)
Author:
Maciej Komosinski
Message:

Improved argument variable names; changed implementation to use STL classes (vector, string)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpp/frams/loggers/loggers.h

    r375 r378  
    33// See LICENSE.txt for details.
    44
    5 #ifndef _FRAMS_LOGGERS_H_
    6 #define _FRAMS_LOGGERS_H_
     5#ifndef _COMMON_LOGGERS_H_
     6#define _COMMON_LOGGERS_H_
    77
    8 #include <frams/util/list.h>
    9 #include <frams/util/sstring.h>
    108#include <common/log.h>
    119#include <common/threads.h>
     10#include <common/nonstd_stl.h>
    1211
    1312class LoggerBase;
     
    1615{
    1716        friend class LoggerBase;
    18         SListTempl<LoggerBase*> handlers;
    19         void send(int level, const char *o, const char *m, int w, const char *bl);
     17        vector<LoggerBase*> loggers;
     18        void send(int position, const char *obj, const char *method, int level, const char *msg);
    2019public:
    21         int find(LoggerBase *r) { return handlers.find(r); }
    22         int add(LoggerBase *r);
     20        int find(LoggerBase *logger)
     21        {
     22                vector<LoggerBase*>::iterator it = std::find(loggers.begin(), loggers.end(), logger);
     23                return it == loggers.end() ? -1 : std::distance(loggers.begin(), it);
     24        }
     25        int add(LoggerBase *logger);
    2326        void remove(int i);
    24         void remove(LoggerBase *r);
     27        void remove(LoggerBase *logger);
    2528        void removeAll();
    26         void send(const char *o, const char *m, int w, const char *bl)
     29        void send(const char *obj, const char *method, int level, const char *msg)
    2730        {
    28                 send(handlers.size() - 1, o, m, w, bl);
     31                send(loggers.size() - 1, obj, method, level, msg);
    2932        }
    3033        ~LoggerManager() { removeAll(); }
     
    5053
    5154        void logPrintf(const char *o, const char *m, int w, const char *bl, ...);
    52         void send(const char *o, const char *m, int w, const char *bl);
     55        void send(const char *obj, const char *method, int level, const char *msg);
    5356
    5457        bool isEnabled() { return manager ? true : false; }
     
    6871        }
    6972
    70         virtual void handle(const char *o, const char *m, int w, const char *bl) {}
     73        virtual void handle(const char *obj, const char *method, int level, const char *msg) {}
    7174};
    7275
     
    7679{
    7780protected:
    78         int maxlevel, minleveltostore, errcount, warncount, storedcount, infocount;
    79         SString msgs;
     81        int maxlevel, minleveltostore, errcount, warncount, infocount, storedcount;
     82        string msgs;
    8083
    8184public:
    8285
    83         void reset() { maxlevel = LOG_INFO - 1; errcount = warncount = storedcount = infocount = 0; msgs = 0; }
     86        void reset() { maxlevel = LOG_INFO - 1; errcount = warncount = infocount = storedcount = 0; msgs = ""; }
    8487
    8588        enum Options2
     
    9396        int getStoredCount()      { return storedcount; }
    9497        int getErrorLevel()       { return maxlevel; }
    95         const SString& getMessages() { return msgs; }
     98        const string getMessages() { return msgs; }
    9699
    97100        LoggerToMemory(int opts = 0, int minimal_level_to_store = LOG_ERROR) :LoggerBase(opts), minleveltostore(minimal_level_to_store)
     
    100103        }
    101104
    102         void handle(const char *o, const char *m, int w, const char *bl);
     105        void handle(const char *obj, const char *method, int level, const char *msg);
    103106};
    104107
     
    107110        LoggerManager *other_manager;
    108111public:
    109         RedirectingLogger(LoggerManager *other_mgr,int opts=0)
     112        RedirectingLogger(LoggerManager *other_mgr, int opts = 0)
    110113                :LoggerBase(opts), other_manager(other_mgr) {}
    111114
    112         void handle(const char *o, const char *m, int w, const char *bl)
     115        void handle(const char *obj, const char *method, int level, const char *msg)
    113116        {
    114                 other_manager->send(o, m, w, bl);
     117                other_manager->send(obj, method, level, msg);
    115118        }
    116119};
Note: See TracChangeset for help on using the changeset viewer.