161 lines
4.7 KiB
C
161 lines
4.7 KiB
C
|
//===========================================================================//
|
||
|
// Purpose : Declaration and inline definition(s) for a TIO_FileOutput class.
|
||
|
//
|
||
|
// Inline methods include:
|
||
|
// - TIO_FileOutput_c, ~TIO_FileOutput_c
|
||
|
// - Flush
|
||
|
// - GetName
|
||
|
// - GetStream
|
||
|
// - GetLineNum
|
||
|
// - SetEnabled
|
||
|
// - IsEnabled
|
||
|
// - IsValid
|
||
|
//
|
||
|
//===========================================================================//
|
||
|
|
||
|
#ifndef TIO_FILE_OUTPUT_H
|
||
|
#define TIO_FILE_OUTPUT_H
|
||
|
|
||
|
#include <string>
|
||
|
using namespace std;
|
||
|
|
||
|
#include "TIO_Typedefs.h"
|
||
|
#include "TIO_FileHandler.h"
|
||
|
|
||
|
//===========================================================================//
|
||
|
// Purpose : Class declaration
|
||
|
// Author : Jeff Rudolph
|
||
|
//---------------------------------------------------------------------------//
|
||
|
// Version history
|
||
|
// 05/01/12 jeffr : Original
|
||
|
//===========================================================================//
|
||
|
class TIO_FileOutput_c
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
TIO_FileOutput_c( const char* pszFileName = 0,
|
||
|
TIO_FileOpenMode_t fileOpen = TIO_FILE_OPEN_UNDEFINED );
|
||
|
~TIO_FileOutput_c( void );
|
||
|
|
||
|
bool Open( const char* pszFileName,
|
||
|
TIO_FileOpenMode_t fileOpen );
|
||
|
bool Open( const string& srFileName,
|
||
|
TIO_FileOpenMode_t fileOpen );
|
||
|
void Close( void );
|
||
|
|
||
|
bool Write( const char* pszString );
|
||
|
|
||
|
void Flush( void );
|
||
|
|
||
|
const char* GetName( void ) const;
|
||
|
FILE* GetStream( void ) const;
|
||
|
size_t GetLineNum( void ) const;
|
||
|
|
||
|
void SetEnabled( bool isEnabled );
|
||
|
|
||
|
bool IsEnabled( void ) const;
|
||
|
|
||
|
bool IsValid( const char* pszFileName,
|
||
|
TIO_FileOpenMode_t fileOpen ) const;
|
||
|
bool IsValid( const string& srFileName,
|
||
|
TIO_FileOpenMode_t fileOpen ) const;
|
||
|
bool IsValid( void ) const;
|
||
|
|
||
|
private:
|
||
|
|
||
|
TIO_FileHandler_c fileHandler_; // Define this file's handler object
|
||
|
size_t lineNum_; // Track this file's current line number
|
||
|
bool isEnabled_; // Used to enable/disable output state
|
||
|
};
|
||
|
|
||
|
//===========================================================================//
|
||
|
// Purpose : Class inline definition(s)
|
||
|
// Author : Jeff Rudolph
|
||
|
//---------------------------------------------------------------------------//
|
||
|
// Version history
|
||
|
// 05/01/12 jeffr : Original
|
||
|
//===========================================================================//
|
||
|
inline TIO_FileOutput_c::TIO_FileOutput_c(
|
||
|
const char* pszFileName,
|
||
|
TIO_FileOpenMode_t fileOpen )
|
||
|
:
|
||
|
fileHandler_( pszFileName, fileOpen ),
|
||
|
lineNum_( 0 ),
|
||
|
isEnabled_( pszFileName ? true : false )
|
||
|
{
|
||
|
}
|
||
|
|
||
|
//===========================================================================//
|
||
|
inline TIO_FileOutput_c::~TIO_FileOutput_c(
|
||
|
void )
|
||
|
{
|
||
|
this->fileHandler_.Close( );
|
||
|
}
|
||
|
|
||
|
//===========================================================================//
|
||
|
inline void TIO_FileOutput_c::Flush(
|
||
|
void )
|
||
|
{
|
||
|
this->fileHandler_.Flush( );
|
||
|
}
|
||
|
|
||
|
//===========================================================================//
|
||
|
inline const char* TIO_FileOutput_c::GetName(
|
||
|
void ) const
|
||
|
{
|
||
|
return( this->fileHandler_.GetFileName( ));
|
||
|
}
|
||
|
|
||
|
//===========================================================================//
|
||
|
inline FILE* TIO_FileOutput_c::GetStream(
|
||
|
void ) const
|
||
|
{
|
||
|
return( this->fileHandler_.GetFileStream( ));
|
||
|
}
|
||
|
|
||
|
//===========================================================================//
|
||
|
inline size_t TIO_FileOutput_c::GetLineNum(
|
||
|
void ) const
|
||
|
{
|
||
|
return( this->lineNum_ );
|
||
|
}
|
||
|
|
||
|
//===========================================================================//
|
||
|
inline void TIO_FileOutput_c::SetEnabled(
|
||
|
bool isEnabled )
|
||
|
{
|
||
|
this->isEnabled_ = isEnabled;
|
||
|
}
|
||
|
|
||
|
//===========================================================================//
|
||
|
inline bool TIO_FileOutput_c::IsEnabled(
|
||
|
void ) const
|
||
|
{
|
||
|
return( this->isEnabled_ );
|
||
|
}
|
||
|
|
||
|
//===========================================================================//
|
||
|
inline bool TIO_FileOutput_c::IsValid(
|
||
|
const char* pszFileName,
|
||
|
TIO_FileOpenMode_t fileOpen ) const
|
||
|
{
|
||
|
return( this->fileHandler_.IsValid( pszFileName, fileOpen ));
|
||
|
}
|
||
|
|
||
|
//===========================================================================//
|
||
|
inline bool TIO_FileOutput_c::IsValid(
|
||
|
const string& srFileName,
|
||
|
TIO_FileOpenMode_t fileOpen ) const
|
||
|
{
|
||
|
return( this->fileHandler_.IsValid( srFileName, fileOpen ));
|
||
|
}
|
||
|
|
||
|
//===========================================================================//
|
||
|
inline bool TIO_FileOutput_c::IsValid(
|
||
|
void ) const
|
||
|
{
|
||
|
return( this->fileHandler_.IsValid( ));
|
||
|
}
|
||
|
|
||
|
#endif
|