FileLogStream.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #ifndef ASSIMP_FILELOGSTREAM_H_INC
  2. #define ASSIMP_FILELOGSTREAM_H_INC
  3. #include "../include/LogStream.h"
  4. #include "../include/IOStream.h"
  5. namespace Assimp
  6. {
  7. // ---------------------------------------------------------------------------
  8. /** @class FileLogStream
  9. * @brief Logstream to write into a file.
  10. */
  11. class FileLogStream :
  12. public LogStream
  13. {
  14. public:
  15. FileLogStream( const std::string &strFileName );
  16. ~FileLogStream();
  17. void write( const std::string &message );
  18. private:
  19. IOStream *m_pStream;
  20. };
  21. // ---------------------------------------------------------------------------
  22. // Constructor
  23. inline FileLogStream::FileLogStream( const std::string &strFileName ) :
  24. m_pStream(NULL)
  25. {
  26. if ( strFileName.empty() )
  27. return;
  28. DefaultIOSystem FileSystem;
  29. const std::string mode = "w";
  30. m_pStream = FileSystem.Open( strFileName, mode );
  31. }
  32. // ---------------------------------------------------------------------------
  33. // Destructor
  34. inline FileLogStream::~FileLogStream()
  35. {
  36. if (NULL != m_pStream)
  37. {
  38. DefaultIOSystem FileSystem;
  39. FileSystem.Close( m_pStream );
  40. }
  41. }
  42. // ---------------------------------------------------------------------------
  43. // Write method
  44. inline void FileLogStream::write( const std::string &message )
  45. {
  46. if (m_pStream != NULL)
  47. {
  48. m_pStream->Write(message.c_str(), sizeof(char),
  49. message.size());
  50. /*int i=0;
  51. i++;*/
  52. }
  53. }
  54. // ---------------------------------------------------------------------------
  55. } // Namespace Assimp
  56. #endif