Files
front_linux/LFtid1056/pqdif/include/pcn_flat.h

69 lines
1.9 KiB
C++

class CPQDIF_StreamIO;
class CPQDIF_StreamProcessor;
enum PF_StreamIO;
class CPQDIF_PC_FlatFile : public CPQDIF_PersistController
{
public:
CPQDIF_PC_FlatFile();
~CPQDIF_PC_FlatFile();
// Overridables
public:
virtual CPQDIFRecord * GetRecordFull( long index );
// Public interface
public:
void SetFileName( const char * fname )
{ m_fname = fname; }
const char * GetFileName( void )
{ return m_fname.c_str(); }
void SetChunkInput( BYTE * chunk, long size );
bool GetChunkOutputSize( long& size );
bool GetChunkOutput( BYTE * chunk, long size );
bool GetCanWriteIncremental( void )
{
UpdateInformation(); // need to fix
return false;
//return m_pstream->CanWriteIncremental();
}
int ReadHeaders( void );
bool ImportContainerAndRecordsFromChunk( BYTE * chunk, long size, bool &bCompressed );
bool ImportRecordsFromChunk( BYTE * chunk, long size, bool bCompressed );
bool WriteIncremental( void );
bool WriteNew( void );
bool WriteRecordsToFile( void );
long GetCompressionAlgorithm();
void SetCompressionAlgorithm( long algNew );
long GetCompressionStyle();
void SetCompressionStyle( long styleNew );
// Implementation
protected:
void UpdateInformation( void );
// Member data
private:
// Chunk (if NULL, assume physical file)
BYTE * m_chunk;
long m_sizeChunk;
// Physical flat file path
string m_fname;
// Keep track of which stream type
enum PF_StreamIO m_whichStream;
CPQDIF_StreamIO * m_pstream;
CPQDIF_StreamProcessor * m_pprocHeader;
CPQDIF_StreamProcessor * m_pprocBody;
};