vrshoot

annotate libs/assimp/FileLogStream.h @ 0:b2f14e535253

initial commit
author John Tsiombikas <nuclear@member.fsf.org>
date Sat, 01 Feb 2014 19:58:19 +0200
parents
children
rev   line source
nuclear@0 1 #ifndef ASSIMP_FILELOGSTREAM_H_INC
nuclear@0 2 #define ASSIMP_FILELOGSTREAM_H_INC
nuclear@0 3
nuclear@0 4 #include "assimp/LogStream.hpp"
nuclear@0 5 #include "assimp/IOStream.hpp"
nuclear@0 6
nuclear@0 7 namespace Assimp {
nuclear@0 8
nuclear@0 9 // ----------------------------------------------------------------------------------
nuclear@0 10 /** @class FileLogStream
nuclear@0 11 * @brief Logstream to write into a file.
nuclear@0 12 */
nuclear@0 13 class FileLogStream :
nuclear@0 14 public LogStream
nuclear@0 15 {
nuclear@0 16 public:
nuclear@0 17 FileLogStream( const char* file, IOSystem* io = NULL );
nuclear@0 18 ~FileLogStream();
nuclear@0 19 void write( const char* message );
nuclear@0 20
nuclear@0 21 private:
nuclear@0 22 IOStream *m_pStream;
nuclear@0 23 };
nuclear@0 24
nuclear@0 25 // ----------------------------------------------------------------------------------
nuclear@0 26 // Constructor
nuclear@0 27 inline FileLogStream::FileLogStream( const char* file, IOSystem* io ) :
nuclear@0 28 m_pStream(NULL)
nuclear@0 29 {
nuclear@0 30 if ( !file || 0 == *file )
nuclear@0 31 return;
nuclear@0 32
nuclear@0 33 // If no IOSystem is specified: take a default one
nuclear@0 34 if (!io)
nuclear@0 35 {
nuclear@0 36 DefaultIOSystem FileSystem;
nuclear@0 37 m_pStream = FileSystem.Open( file, "wt");
nuclear@0 38 }
nuclear@0 39 else m_pStream = io->Open( file, "wt" );
nuclear@0 40 }
nuclear@0 41
nuclear@0 42 // ----------------------------------------------------------------------------------
nuclear@0 43 // Destructor
nuclear@0 44 inline FileLogStream::~FileLogStream()
nuclear@0 45 {
nuclear@0 46 // The virtual d'tor should destroy the underlying file
nuclear@0 47 delete m_pStream;
nuclear@0 48 }
nuclear@0 49
nuclear@0 50 // ----------------------------------------------------------------------------------
nuclear@0 51 // Write method
nuclear@0 52 inline void FileLogStream::write( const char* message )
nuclear@0 53 {
nuclear@0 54 if (m_pStream != NULL)
nuclear@0 55 {
nuclear@0 56 m_pStream->Write(message, sizeof(char), ::strlen(message));
nuclear@0 57 m_pStream->Flush();
nuclear@0 58 }
nuclear@0 59 }
nuclear@0 60
nuclear@0 61 // ----------------------------------------------------------------------------------
nuclear@0 62 } // !Namespace Assimp
nuclear@0 63
nuclear@0 64 #endif // !! ASSIMP_FILELOGSTREAM_H_INC