mcatan      2004/04/02 00:42:39

  Modified:    include/log4cxx/spi loggingevent.h
               src      loggingevent.cpp
  Log:
  optimization
  
  Revision  Changes    Path
  1.13      +3 -1      logging-log4cxx/include/log4cxx/spi/loggingevent.h
  
  Index: loggingevent.h
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/include/log4cxx/spi/loggingevent.h,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- loggingevent.h    4 Feb 2004 01:11:17 -0000       1.12
  +++ loggingevent.h    2 Apr 2004 08:42:39 -0000       1.13
  @@ -86,6 +86,8 @@
                                const LevelPtr& level,  const String& message,
                                const char* file=0, int line=-1);
   
  +                     ~LoggingEvent();
  +
                        /** Return the #level of this event. */
                        inline const LevelPtr& getLevel() const
                                { return level; }
  @@ -216,7 +218,7 @@
                        /**
                        * A map of String keys and String values.
                        */
  -                     std::map<String, String> properties;
  +                     std::map<String, String> * properties;
   
                        /** Have we tried to do an NDC lookup? If we did, there 
is no need
                        *  to do it again.  Note that its value is always false 
when
  
  
  
  1.12      +41 -14    logging-log4cxx/src/loggingevent.cpp
  
  Index: loggingevent.cpp
  ===================================================================
  RCS file: /home/cvs/logging-log4cxx/src/loggingevent.cpp,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- loggingevent.cpp  4 Feb 2004 00:37:58 -0000       1.11
  +++ loggingevent.cpp  2 Apr 2004 08:42:39 -0000       1.12
  @@ -37,7 +37,7 @@
   
   LoggingEvent::LoggingEvent()
   : timeStamp(0), ndcLookupRequired(true), line(0),
  -mdcCopyLookupRequired(true)
  +mdcCopyLookupRequired(true), properties(0)
   {
   }
   
  @@ -47,11 +47,19 @@
   : fqnOfCategoryClass(fqnOfCategoryClass), logger(logger), level(level),
   message(message), file((char*)file), line(line),
   timeStamp(System::currentTimeMillis()), ndcLookupRequired(true),
  -mdcCopyLookupRequired(true)
  +mdcCopyLookupRequired(true), properties(0)
   {
        threadId = Thread::getCurrentThreadId();
   }
   
  +LoggingEvent::~LoggingEvent()
  +{
  +     if (properties != 0)
  +     {
  +             delete properties;
  +     }
  +}
  +
   const String& LoggingEvent::getLoggerName() const
   { 
        return logger->getName();
  @@ -130,9 +138,14 @@
   
   String LoggingEvent::getProperty(const String& key) const
   {
  -     std::map<String, String>::const_iterator  it = properties.find(key);
  +     if (properties == 0)
  +     {
  +             return String();
  +     }
   
  -     if (it != properties.end())
  +     std::map<String, String>::const_iterator  it = properties->find(key);
  +
  +     if (it != properties->end())
        {
                const String& p = it->second;
   
  @@ -148,10 +161,14 @@
   std::set<String> LoggingEvent::getPropertyKeySet() const
   {
        std::set<String> set;
  -     std::map<String, String>::const_iterator it;
  -     for (it = properties.begin(); it != properties.end(); it++)
  +
  +     if (properties != 0)
        {
  -             set.insert(it->first);
  +             std::map<String, String>::const_iterator it;
  +             for (it = properties->begin(); it != properties->end(); it++)
  +             {
  +                     set.insert(it->first);
  +             }
        }
   
        return set;
  @@ -212,7 +229,7 @@
        {
                is->read(key);
                is->read(value);
  -             properties[key] = value;
  +             setProperty(key, value);
        }
   
        // threadId
  @@ -253,7 +270,12 @@
   
   void LoggingEvent::setProperty(const String& key, const String& value)
   {
  -     properties[key] = value;
  +     if (properties == 0)
  +     {
  +             properties = new std::map<String, String>;
  +     }
  +
  +     (*properties)[key] = value;
   }
   
   void LoggingEvent::write(helpers::SocketOutputStreamPtr& os) const
  @@ -299,12 +321,17 @@
        }
   
        // properties
  -     os->write((int)properties.size());
  -     std::map<String, String>::const_iterator it2;
  -     for (it2 = properties.begin(); it2 != properties.end(); it2++)
  +     int size = (properties != 0) ? (int)properties->size() : 0;
  +     os->write(size);
  +
  +     if (size > 0)
        {
  -             os->write(it2->first);
  -             os->write(it2->second);
  +             std::map<String, String>::const_iterator it;
  +             for (it = properties->begin(); it != properties->end(); it++)
  +             {
  +                     os->write(it->first);
  +                     os->write(it->second);
  +             }
        }
   
        // threadId
  
  
  

Reply via email to