Changeset 910 for library/bdm/bdmroot.h

Show
Ignore:
Timestamp:
04/20/10 21:16:56 (14 years ago)
Author:
mido
Message:

patch of LOG LEVELS

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • library/bdm/bdmroot.h

    r907 r910  
    3838void UI_DBG (const Setting &S, const string &spc, ostream &out ); 
    3939 
    40 //forward declaration 
     40 
     41//! Forward class declaration 
    4142class logger; 
    4243 
     
    4546//! the existence of this class is forced by the necessity of passing log_levels to user_info methods, however, the main functionality 
    4647//! is located in \c log_level_template class 
    47 class log_level_base 
    48 { 
     48class log_level_base { 
    4949private: 
    5050        // UserInfo class have to be able to read all the internal  
     
    5252        friend class UI; 
    5353 
     54        //! this is necessary to allow logger to set ids vector appropriately and also to set registered_logger 
     55        friend class logger;  
     56 
    5457protected: 
    5558        //! boolean flags related indicating which details will be logged to a logger 
    5659        bitset<32> values; 
    5760         
     61        //! vector of log IDs - one element for each entry 
     62        ivec ids; 
     63 
     64        //! internal pointer to the logger to which this log_level is registered 
     65        //!  
     66        //! it is set to NULL at the beginning 
     67        logger * registered_logger; 
     68 
    5869public: 
     70        //! default constructor 
     71        log_level_base() { 
     72                registered_logger = NULL; 
     73        } 
     74 
    5975 
    6076        //! a general utility transforming a comma-separated sequence of strings into an instance of Array<strings> 
     
    6480        virtual const Array<string> &names() const = 0; 
    6581}; 
    66  
    6782 
    6883//! Root class of BDM objects 
     
    7388 
    7489protected: 
    75         //!remember which logger is registered 
    76         logger * registered_logger; 
    7790 
    7891        /*!      
     
    157170         
    158171        //!default constructor 
    159         root() : registered_logger ( NULL ) {}; 
     172        root() {}; 
    160173 
    161174        //! make sure this is a virtual object 
     
    172185                return os.str(); 
    173186        } 
    174         //! Register itself in a logger, i.e. allocate space for data from this class 
    175         //! The level of details (parameter \c level ) is individual for each class. 
     187        //! Register log levels of each inheritance layer to a logger, i.e. allocate space for data from this class 
    176188        virtual void log_register ( logger &L, const string &prefix ) { 
    177                 registered_logger = &L; 
    178189        } 
    179190