46 for (
uint32 i = 0; i < format.length(); ++i)
56 buffer << *(
float*)entry;
60 buffer << *(
uint8*)entry;
66 if (locStr->
Str[locale][0] ==
'\0')
69 char const* str = locStr->
Str[locale];
70 size_t len = strlen(str);
74 entry +=
sizeof(
char*);
124 char** tmpIdxTable =
new char* [
id + 1];
125 memset(tmpIdxTable, 0, (
id + 1) *
sizeof(
char*));
127 delete[]
reinterpret_cast<char*
>(
indexTable.asT);
185 delete[]
reinterpret_cast<char*
>(
indexTable.asT);
void WriteDB2RecordToPacket(DB2Storage< T > const &store, uint32 id, uint32 locale, ByteBuffer &buffer)
bool DB2StorageHasEntry(DB2Storage< T > const &store, uint32 id)
bool Load(const char *filename, const char *fmt)
char * AutoProduceStrings(std::string fmt, char *dataTable, uint32 locale)
char * AutoProduceData(std::string fmt, uint32 &count, char **&indexTable)
char * AutoProduceStringsArrayHolders(std::string fmt, char *dataTable)
Interface class for common access.
virtual ~DB2StorageBase()
virtual void WriteRecord(uint32 id, uint32 locale, ByteBuffer &buffer) const =0
virtual bool HasRecord(uint32 id) const =0
bool LoadStringsFrom(char const *fn, uint32 locale)
T * CreateEntry(uint32 id, bool evenIfExists=false)
uint32 GetFieldCount() const
void(* PacketWriter)(DB2Storage< T > const &, uint32, uint32, ByteBuffer &)
StringPoolList m_stringPoolList
DB2Storage(char const *f, EntryChecker checkEntry=NULL, PacketWriter writePacket=NULL)
bool Load(char const *fn, uint32 locale)
void EraseEntry(uint32 id)
T const * LookupEntry(uint32 id) const
uint32 GetNumRows() const
char const * GetFormat() const
void WriteRecord(uint32 id, uint32 locale, ByteBuffer &buffer) const
bool(* EntryChecker)(DB2Storage< T > const &, uint32)
union DB2Storage::@255306326344120151304235255234327214377351333372 indexTable
bool HasRecord(uint32 id) const
std::list< char * > StringPoolList
std::vector< T * > DataTableEx
DataTableEx m_dataTableEx
char const * Str[TOTAL_LOCALES]