| Public Member Functions | |
| c4_Bytes () | |
| Construct an empty binary object. | |
| c4_Bytes (const void *, int) | |
| Construct an object with contents, no copy. | |
| c4_Bytes (const void *, int, bool) | |
| Construct an object with contents, optionally as a copy. | |
| c4_Bytes (const c4_Bytes &) | |
| Copy constructor. | |
| ~c4_Bytes () | |
| Destructor, if a copy was made, it will be released here. | |
| c4_Bytes & | operator= (const c4_Bytes &) | 
| Assignment, this may make a private copy of contents. | |
| void | Swap (c4_Bytes &) | 
| Swap the contents and ownership of two byte objects. | |
| int | Size () const | 
| Returns the number of bytes of its contents. | |
| const t4_byte * | Contents () const | 
| Returns a pointer to the contents. | |
| t4_byte * | SetBuffer (int) | 
| Define contents as a freshly allocated buffer of given size. | |
| t4_byte * | SetBufferClear (int) | 
| Allocate a buffer and fills its contents with zero bytes. | |
| Friends | |
| bool | operator== (const c4_Bytes &, const c4_Bytes &) | 
| Return true if the contents of both objects are equal. | |
| bool | operator!= (const c4_Bytes &, const c4_Bytes &) | 
| Returns true if the contents of both objects is not equal. | |
These objects are used to pass around untyped data without concern about clean-up. They know whether the bytes need to be de-allocated when these objects go out of scope. Small amounts of data are stored in the object.
Objects of this class are used a lot within Metakit to manipulate its own data items generically. The c4_BytesProp class allows storing binary data explicitly in a file. If such data files must be portable, then the application itself must define a generic format to deal with byte order.
How to store an object in binary form in a row (this is not portable):
struct MyStruct { ... }; MyStruct something; c4_BytesProp pData ("Data"); c4_Row row; pData (row) = c4_Bytes (&something, sizeof something);