/** \file
 *
 *  Contains the LogWriter class implementation.
 *
 *  Copyright (c) 2007,2008,2009 MBARI
 *  MBARI Proprietary Information.  All Rights Reserved
 *
 */

#include "LogWriter.h"

#include "io/OutStream.h"

/// Constructor
LogWriter::LogWriter()
    : logStream_( NULL ),
      wroteHeader_( false ),
      wroteFooter_( false ),
      parentCount_( 0 ),
      active_( true )
{}

/// Constructor
LogWriter::LogWriter( OutStream& outStream )
    : logStream_( &outStream ),
      wroteHeader_( false ),
      wroteFooter_( false ),
      parentCount_( 0 ),
      active_( true )
{}

// Destructor
LogWriter::~LogWriter()
{
    if( !wroteFooter_ )
    {
        writeFooter();
    }
}

/// Return true if logStream_ is available.
bool LogWriter::isValid( void )
{
    return logStream_ != NULL && logStream_->isWritable();
}

/// Sets the OutStream
void LogWriter::setOutStream( OutStream& outStream )
{
    logStream_ = &outStream;
}
