(file) Return to TraceFileHandler.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Common

Diff for /pegasus/src/Pegasus/Common/TraceFileHandler.cpp between version 1.45 and 1.46

version 1.45, 2012/12/24 08:44:58 version 1.46, 2013/03/14 10:23:37
Line 33 
Line 33 
 #include <Pegasus/Common/Tracer.h> #include <Pegasus/Common/Tracer.h>
 #include <Pegasus/Common/TraceFileHandler.h> #include <Pegasus/Common/TraceFileHandler.h>
 #include <Pegasus/Common/Logger.h> #include <Pegasus/Common/Logger.h>
   #include <Pegasus/Common/String.h>
   #include <Pegasus/Common/StringConversion.h>
   
  
 #if defined(PEGASUS_OS_TYPE_WINDOWS) #if defined(PEGASUS_OS_TYPE_WINDOWS)
 # include <Pegasus/Common/TraceFileHandlerWindows.cpp> # include <Pegasus/Common/TraceFileHandlerWindows.cpp>
Line 55 
Line 58 
     _fileName(0),     _fileName(0),
     _fileHandle(0),     _fileHandle(0),
     _logErrorBitField(0),     _logErrorBitField(0),
     _configHasChanged(true)      _configHasChanged(true),
 #ifdef PEGASUS_PLATFORM_LINUX_GENERIC_GNU      _maxTraceFileSizeBytes(0),
     ,_baseFileName(0),      _maxTraceFileNumber(0)
     _fileCount(0)  
 #endif  
 { {
 } }
  
Line 75 
Line 76 
         fclose(_fileHandle);         fclose(_fileHandle);
     }     }
     free(_fileName);     free(_fileName);
 #ifdef PEGASUS_PLATFORM_LINUX_GENERIC_GNU  
     free(_baseFileName);  
 #endif  
 } }
  
 //////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
Line 106 
Line 104 
  
     free(_fileName);     free(_fileName);
     _fileName = 0;     _fileName = 0;
 #ifdef PEGASUS_PLATFORM_LINUX_GENERIC_GNU  
     free(_baseFileName);  
     _baseFileName = 0;  
 #endif  
  
     if (Tracer::_getInstance() ->_traceFile.size() == 0)     if (Tracer::_getInstance() ->_traceFile.size() == 0)
     {     {
Line 140 
Line 134 
         return;         return;
     }     }
  
     #ifdef PEGASUS_PLATFORM_LINUX_GENERIC_GNU  
     _baseFileName = strdup(_fileName);  
     #endif  
   
     _configHasChanged=false;     _configHasChanged=false;
  
     return;     return;
Line 233 
Line 223 
     }     }
 } }
  
   Boolean TraceFileHandler::_fileExists(char* fileName)
   {
       if (!System::exists(fileName))
       {
           _fileHandle = _openFile(fileName);
           if(!_fileHandle)
           {
               return false;
           }
       }
   
       Uint32 traceFileSize = 0;
   
       if(!FileSystem::getFileSize(_fileName, traceFileSize))
       {
           return false;
       }
   
       /* Check if the size of the tracefile
            is exceeding configured value.*/
       if(traceFileSize > _maxTraceFileSizeBytes)
       {
           rollTraceFile(_fileName);
       }
   
       return true;
   }
   
   void TraceFileHandler::setMaxTraceFileSize(Uint32 maxTraceFileSizeBytes)
   {
       _maxTraceFileSizeBytes = maxTraceFileSizeBytes;
   }
   
   void TraceFileHandler::setMaxTraceFileNumber(Uint32 maxTraceFileNumber)
   {
       _maxTraceFileNumber = maxTraceFileNumber;
   }
   
   void TraceFileHandler::rollTraceFile(const char* fileName)
   {
       // Close the File
       if (_fileHandle)
       {
            fclose(_fileHandle);
            _fileHandle = 0;
       }
   
       String oldFileName;
       oldFileName.append(fileName);
       oldFileName.append(".");
       char buffer[5];
       Uint32 size = 0;
       oldFileName.append(Uint32ToString(buffer, _maxTraceFileNumber, size));
   
       String oldFileName_s(oldFileName);
       FileSystem::removeFile(oldFileName_s);
       Uint32 n = strlen(fileName) + 1;
   
       for(Uint32 i = _maxTraceFileNumber ; i > 1 ; i--)
       {
            String newFileName_s = oldFileName_s;
            oldFileName = oldFileName.subString(0, n);
            oldFileName.append(Uint32ToString(buffer, (i-1), size));
            oldFileName_s.assign(oldFileName);
            FileSystem::renameFile(oldFileName_s, newFileName_s);
       }
   
       String fileName_s(fileName);
       FileSystem::renameFile(fileName_s, oldFileName_s);
   
       _fileHandle = TraceFileHandler::_openFile(fileName);
   }
  
 PEGASUS_NAMESPACE_END PEGASUS_NAMESPACE_END


Legend:
Removed from v.1.45  
changed lines
  Added in v.1.46

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2