Files
2026-06-01 12:46:52 +02:00

57 lines
1.1 KiB
C++

#pragma once
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <string>
#include <vector>
#include "ColumnSchema.h"
#include "IndexSchema.h"
class RDUWriter
{
public:
RDUWriter();
~RDUWriter();
bool Create( const std::string& file_name,
const char* szTag,
unsigned char nMajorVersion,
unsigned char nMinorVersion );
void Close();
bool WriteColumnSchema( const std::vector< COLUMN_SCHEMA* >& vColumnSchema );
bool WriteIndexSchema( const std::vector< INDEX_SCHEMA* >& vIndexSchema );
bool WriteRowCount( int nRowCount );
template< typename Data_T >
bool WriteColumnData( const Data_T& tData )
{
return WriteColumnData( &tData, sizeof( tData ) );
}
bool WriteColumnData( const void* pData, unsigned short nSize );
bool WriteColumnString( const char* szString, unsigned short nLen );
bool WriteColumnString( const wchar_t* szString, unsigned short nLen );
private:
bool WriteHeader( const char* szTag,
unsigned char nMajorVersion,
unsigned char nMinorVersion );
bool WriteIndexColumnInfo( const std::vector< INDEX_SCHEMA::COLUMN_INFO* >& vColumnInfo );
private:
HANDLE m_hFile;
};