| /* |
| Open Asset Import Library (assimp) |
| ---------------------------------------------------------------------- |
| |
| Copyright (c) 2006-2017, assimp team |
| All rights reserved. |
| |
| Redistribution and use of this software in source and binary forms, |
| with or without modification, are permitted provided that the |
| following conditions are met: |
| |
| * Redistributions of source code must retain the above |
| copyright notice, this list of conditions and the |
| following disclaimer. |
| |
| * Redistributions in binary form must reproduce the above |
| copyright notice, this list of conditions and the |
| following disclaimer in the documentation and/or other |
| materials provided with the distribution. |
| |
| * Neither the name of the assimp team, nor the names of its |
| contributors may be used to endorse or promote products |
| derived from this software without specific prior |
| written permission of the assimp team. |
| |
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| |
| ---------------------------------------------------------------------- |
| */ |
| /** @file FileLofStream.h |
| */ |
| #ifndef ASSIMP_FILELOGSTREAM_H_INC |
| #define ASSIMP_FILELOGSTREAM_H_INC |
| |
| #include <assimp/LogStream.hpp> |
| #include <assimp/IOStream.hpp> |
| #include <assimp/DefaultIOSystem.h> |
| |
| namespace Assimp { |
| |
| // ---------------------------------------------------------------------------------- |
| /** @class FileLogStream |
| * @brief Logstream to write into a file. |
| */ |
| class FileLogStream : |
| public LogStream |
| { |
| public: |
| FileLogStream( const char* file, IOSystem* io = NULL ); |
| ~FileLogStream(); |
| void write( const char* message ); |
| |
| private: |
| IOStream *m_pStream; |
| }; |
| |
| // ---------------------------------------------------------------------------------- |
| // Constructor |
| inline FileLogStream::FileLogStream( const char* file, IOSystem* io ) : |
| m_pStream(NULL) |
| { |
| if ( !file || 0 == *file ) |
| return; |
| |
| // If no IOSystem is specified: take a default one |
| if (!io) |
| { |
| DefaultIOSystem FileSystem; |
| m_pStream = FileSystem.Open( file, "wt"); |
| } |
| else m_pStream = io->Open( file, "wt" ); |
| } |
| |
| // ---------------------------------------------------------------------------------- |
| // Destructor |
| inline FileLogStream::~FileLogStream() |
| { |
| // The virtual d'tor should destroy the underlying file |
| delete m_pStream; |
| } |
| |
| // ---------------------------------------------------------------------------------- |
| // Write method |
| inline void FileLogStream::write( const char* message ) |
| { |
| if (m_pStream != NULL) |
| { |
| m_pStream->Write(message, sizeof(char), ::strlen(message)); |
| m_pStream->Flush(); |
| } |
| } |
| |
| // ---------------------------------------------------------------------------------- |
| } // !Namespace Assimp |
| |
| #endif // !! ASSIMP_FILELOGSTREAM_H_INC |