NCBI C++ ToolKit
|
Search Toolkit Book for CBDB_Field
Base class for constructing BDB fields. More...
#include <db/bdb/bdb_types.hpp>
Public Types | |
enum | ELengthType { eFixedLength , eVariableLength } |
Length based classificator for fields (fixed-variable) More... | |
Public Member Functions | |
CBDB_Field (ELengthType length_type=eFixedLength) | |
virtual | ~CBDB_Field () |
virtual CBDB_Field * | Construct (size_t buf_size=0) const =0 |
Virtual constructor - class factory for BDB fields. More... | |
virtual BDB_CompareFunction | GetCompareFunction (bool byte_swapped) const |
Return address to the type specific comparison function By default it's universal BDB_Compare. More... | |
bool | IsNullable () const |
Return TRUE if field can be NULL. More... | |
void | SetNull () |
Assign field value to NULL. More... | |
bool | IsNull () const |
Return TRUE if field is NULL. More... | |
const string & | GetName () const |
Return symbolic name for the field. More... | |
const void * | GetBuffer () const |
Get pointer to the data. NULL if not yet attached. More... | |
void * | GetBuffer () |
Get pointer to the data. NULL if not yet attached. More... | |
size_t | GetBufferSize () const |
Return maximum possible buffer length. More... | |
size_t | GetLength () const |
Get length of the actual data. More... | |
Public Member Functions inherited from IBDB_Field | |
virtual | ~IBDB_Field () |
virtual int | Compare (const void *p1, const void *p2, bool byte_swapped) const =0 |
Comparison function. More... | |
virtual size_t | GetDataLength (const void *buf) const =0 |
Return current effective size of the buffer. More... | |
virtual void | SetMinVal ()=0 |
Set minimal possible value for the field type. More... | |
virtual void | SetMaxVal ()=0 |
Set maximum possible value for the field type. More... | |
Public Member Functions inherited from IBDB_FieldConvert | |
virtual | ~IBDB_FieldConvert () |
virtual void | SetInt (int) |
virtual void | SetUint (unsigned) |
virtual int | GetInt () const |
virtual unsigned | GetUint () const |
virtual void | SetString (const char *) |
virtual void | SetStdString (const string &) |
virtual void | SetFloat (float) |
virtual void | SetDouble (double) |
virtual string | GetString () const =0 |
virtual void | ToString (string &str) const =0 |
Protected Member Functions | |
int | CompareWith (const CBDB_Field &field) const |
Field comparison function. More... | |
void | CopyFrom (const CBDB_Field &src) |
Copies field value from another field. More... | |
bool | IsVariableLength () const |
Return TRUE if it is a variable length variable (like string) More... | |
bool | IsBufferAttached () const |
Return TRUE if external buffer has already been attached. More... | |
bool | IsSameType (const CBDB_Field &field) const |
RTTI based check if fld is of the same type. More... | |
bool | IsByteSwapped () const |
Return TRUE if field belongs to a file with an alternative byte order. More... | |
void | SetNullable () |
Mark field as "NULL" capable. More... | |
void | SetNotNull () |
Set "is NULL" flag to FALSE. More... | |
void | SetName (const char *name) |
Set symbolic name for the field. More... | |
void | SetBufferIdx (unsigned int idx) |
Set field position in the buffer manager. More... | |
void * | Unpack () |
Unpack the buffer which contains this field (using CBDB_BufferManager). More... | |
void | SetBuffer (void *buf, size_t buf_size=0) |
Set external buffer pointer and length. More... | |
void | SetBufferSize (size_t size) |
Set the buffer size. More... | |
void | SetDataSize (size_t size) |
Set data size, taking into account possible extra data for some fields. More... | |
virtual size_t | GetExtraDataLength () |
Hook for defining extra data length. More... | |
void | SetBufferManager (CBDB_BufferManager *owner) |
Set CBDB_BufferManager – which works as a memory manager for BDB fields. More... | |
void | CopyFrom (const void *src_buf) |
Copy buffer value from the external source. More... | |
Protected Attributes | |
CBDB_BufferManager * | m_BufferManager |
struct { | |
unsigned CBDB_Field::VariableLength: 1 | |
unsigned CBDB_Field::Attached: 1 | |
unsigned CBDB_Field::Nullable: 1 | |
} | m_Flags |
Private Member Functions | |
CBDB_Field & | operator= (const CBDB_Field &data) |
CBDB_Field (const CBDB_Field &data) | |
Private Attributes | |
void * | m_Buffer |
size_t | m_BufferSize |
unsigned | m_BufferIdx |
string | m_Name |
Friends | |
class | CBDB_BufferManager |
class | CBDB_File |
class | CBDB_BLobFile |
Base class for constructing BDB fields.
Implements field buffer pointer.
All DBD field types do not own their buffers. It works as a pointer on external memory kept by the record manager (CBDB_FieldBuf). Class cannot be used independently without record manager.
Definition at line 296 of file bdb_types.hpp.