A DBFieldBase that also contains data and perform implicit conversion to and from string. More...
#include <db_field.h>
Public Member Functions | |
const T & | data () const |
T & | data () |
DBFieldData (Type type, DBClass *owner, std::string name, std::string table_name, bool write_permission) | |
virtual bool | fromBinary (const char *, size_t) |
Sets the value of this field from a binary chunk of data. | |
virtual bool | fromString (const std::string &str) |
Sets the value of this field from a text string. | |
const T & | get () const |
T & | get () |
virtual bool | toBinary (const char *&, size_t &) const |
Gets a pointer to the value of this field as a binary chunk of data. | |
virtual bool | toString (std::string &str) const |
Gets the value of this field as a text string. | |
Protected Member Functions | |
void | copy (const DBFieldData< T > *other) |
DBFieldData (DBClass *owner, const DBFieldData *other) | |
Copy constructor also copies the data itself. | |
Protected Attributes | |
T | data_ |
A DBFieldBase that also contains data and perform implicit conversion to and from string.
Default conversion to and from string is through the stream operators >> and <<. Any data type that defines those operators can be used inside this class. Works well for most basic data types (int, double, etc).
Default behavior for conversion to / from binary is to always fail. This will be overidden only in the specialized DBField< std::vector<char> >
Definition at line 277 of file db_field.h.
database_interface::DBFieldData< T >::DBFieldData | ( | DBClass * | owner, |
const DBFieldData< T > * | other | ||
) | [inline, protected] |
Copy constructor also copies the data itself.
Data is copied through a string or a binary chunk. This implies an additional copy (extra work and memory) but adds no constraints on the type T, which we already know can be converted either to string or to binary.
Definition at line 287 of file db_field.h.
database_interface::DBFieldData< T >::DBFieldData | ( | Type | type, |
DBClass * | owner, | ||
std::string | name, | ||
std::string | table_name, | ||
bool | write_permission | ||
) | [inline] |
Definition at line 318 of file db_field.h.
void database_interface::DBFieldData< T >::copy | ( | const DBFieldData< T > * | other | ) | [inline, protected] |
Definition at line 290 of file db_field.h.
const T& database_interface::DBFieldData< T >::data | ( | ) | const [inline] |
Definition at line 325 of file db_field.h.
T& database_interface::DBFieldData< T >::data | ( | ) | [inline] |
Definition at line 327 of file db_field.h.
virtual bool database_interface::DBFieldData< T >::fromBinary | ( | const char * | binary, |
size_t | length | ||
) | [inline, virtual] |
Sets the value of this field from a binary chunk of data.
Implements database_interface::DBFieldBase.
Reimplemented in database_interface::DBField< std::vector< char > >.
Definition at line 339 of file db_field.h.
virtual bool database_interface::DBFieldData< T >::fromString | ( | const std::string & | str | ) | [inline, virtual] |
Sets the value of this field from a text string.
Implements database_interface::DBFieldBase.
Reimplemented in database_interface::DBField< std::vector< std::string > >, database_interface::DBField< std::string >, and database_interface::DBField< bool >.
Definition at line 329 of file db_field.h.
const T& database_interface::DBFieldData< T >::get | ( | ) | const [inline] |
Definition at line 321 of file db_field.h.
T& database_interface::DBFieldData< T >::get | ( | ) | [inline] |
Definition at line 323 of file db_field.h.
virtual bool database_interface::DBFieldData< T >::toBinary | ( | const char *& | binary, |
size_t & | length | ||
) | const [inline, virtual] |
Gets a pointer to the value of this field as a binary chunk of data.
Field MAINTAINS OWNERSHIP of the binary data; caller is not allowed to modify / delete it.
Implements database_interface::DBFieldBase.
Reimplemented in database_interface::DBField< std::vector< char > >.
Definition at line 340 of file db_field.h.
virtual bool database_interface::DBFieldData< T >::toString | ( | std::string & | str | ) | const [inline, virtual] |
Gets the value of this field as a text string.
Implements database_interface::DBFieldBase.
Reimplemented in database_interface::DBField< std::string >, and database_interface::DBField< bool >.
Definition at line 334 of file db_field.h.
T database_interface::DBFieldData< T >::data_ [protected] |
Definition at line 280 of file db_field.h.