24 #include <fvutils/fileformat/fvfile_block.h> 60 void *spec_header,
size_t spec_header_size)
62 constructor(type, data_size, spec_header, spec_header_size);
72 size_t spec_header_size)
74 constructor(type, data_size, NULL, spec_header_size);
85 constructor(type, data_size, NULL, 0);
98 __spec_header_size = block->__spec_header_size;
99 __block_size = block->__block_size;
100 __block_memptr = block->__block_memptr;
104 __block_owner =
false;
115 FireVisionDataFileBlock::constructor(
unsigned int type,
size_t data_size,
116 void *spec_header,
size_t spec_header_size)
119 __spec_header_size = spec_header_size;
122 __block_memptr = calloc(1, __block_size);
123 __block_owner =
true;
128 if ( (spec_header != NULL) && (spec_header_size > 0) ) {
129 memcpy((
char *)__block_memptr +
sizeof(
fvff_block_header_t), spec_header, spec_header_size);
147 if( spec_header_size != __spec_header_size ) {
149 __spec_header_size = spec_header_size;
152 void *newblock = calloc(1, __block_size);
157 free(__block_memptr);
158 __block_memptr = newblock;
166 if ( (spec_header != NULL) && (spec_header_size > 0) ) {
167 memcpy((
char *)__block_memptr +
sizeof(
fvff_block_header_t), spec_header, spec_header_size);
175 if ( __block_owner) {
176 free(__block_memptr);
187 return __block_header->
type;
197 return __block_memptr;
unsigned int type() const
Get block type.
void * _data
Pointer to the internal data segment.
void * block_memptr() const
Pointer to the whole block.
FireVision File Format data block.
void set_spec_header(void *spec_header, size_t spec_header_size)
Set content-specific header.
void * _spec_header
Pointer to the content specific block header.
void * data_ptr() const
Get data pointer.
virtual ~FireVisionDataFileBlock()
Destructor.
size_t block_size() const
Size of blocks.
size_t _data_size
Size of _data in bytes.
size_t data_size() const
Size of data chunk.
FireVisionDataFileBlock(unsigned int type, size_t data_size, void *spec_header, size_t spec_header_size)
Constructor.