OpenFPGA/vpr7_x2p/printhandler/SRC/TIO_InputOutputHandlers/TIO_FileHandler.h

121 lines
3.7 KiB
C++

//===========================================================================//
// Purpose : Declaration and inline definitions for a TIO_FileHandler class.
//
// Inline methods include:
// - Flush
// - Reset
// - GetFileName
// - GetFileStream
//
//===========================================================================//
#ifndef TIO_FILE_HANDLER_H
#define TIO_FILE_HANDLER_H
#include <cstdio>
#include <string>
using namespace std;
#include "TIO_Typedefs.h"
//===========================================================================//
// Purpose: : Class declaration
// Author : Jeff Rudolph
//---------------------------------------------------------------------------//
// Version history
// 05/01/12 jeffr : Original
//===========================================================================//
class TIO_FileHandler_c
{
public:
TIO_FileHandler_c( void );
TIO_FileHandler_c( const string& srFileName,
TIO_FileOpenMode_t fileOpen = TIO_FILE_OPEN_UNDEFINED,
const char* pszFileType = 0,
TIO_PrintMode_t printMode = TIO_PRINT_ERROR );
TIO_FileHandler_c( const char* pszFileName,
TIO_FileOpenMode_t fileOpen = TIO_FILE_OPEN_UNDEFINED,
const char* pszFileType = 0,
TIO_PrintMode_t printMode = TIO_PRINT_ERROR );
~TIO_FileHandler_c( void );
bool Open( const string& srFileName,
TIO_FileOpenMode_t fileOpen,
const char* pszFileType = 0,
TIO_PrintMode_t printMode = TIO_PRINT_ERROR );
bool Open( const char* pszFileName,
TIO_FileOpenMode_t fileOpen,
const char* pszFileType = 0,
TIO_PrintMode_t printMode = TIO_PRINT_ERROR );
void Close( void );
bool Read( char* pszString, size_t lenString ) const;
bool Write( const char* pszString, ... );
void Flush( void );
void Reset( void ) const;
const char* GetFileName( void ) const;
FILE* GetFileStream( void ) const;
bool ApplyPreProcessor( void );
bool IsValid( const string& srFileName,
TIO_FileOpenMode_t fileOpen,
const char* pszFileType = 0,
TIO_PrintMode_t printMode = TIO_PRINT_ERROR ) const;
bool IsValid( const char* pszFileName,
TIO_FileOpenMode_t fileOpen,
const char* pszFileType = 0,
TIO_PrintMode_t printMode = TIO_PRINT_ERROR ) const;
bool IsValid( void ) const;
private:
string srFileName_;
FILE* pfileStream_;
};
//===========================================================================//
// Purpose: : Class inline definition(s)
// Author : Jeff Rudolph
//---------------------------------------------------------------------------//
// Version history
// 05/01/12 jeffr : Original
//===========================================================================//
inline void TIO_FileHandler_c::Flush(
void )
{
if( this->pfileStream_ )
{
fflush( this->pfileStream_ );
}
}
//===========================================================================//
inline void TIO_FileHandler_c::Reset(
void ) const
{
if( this->pfileStream_ )
{
fseek( this->pfileStream_, 0, SEEK_SET );
}
}
//===========================================================================//
inline FILE* TIO_FileHandler_c::GetFileStream(
void ) const
{
return( this->pfileStream_ );
}
//===========================================================================//
inline const char* TIO_FileHandler_c::GetFileName(
void ) const
{
return( this->srFileName_.data( ));
}
#endif