24 #include <fvutils/fileformat/fvfile_block.h>
30 namespace firevision {
59 FireVisionDataFileBlock::FireVisionDataFileBlock(
unsigned int type,
size_t data_size,
60 void *spec_header,
size_t spec_header_size)
62 constructor(type, data_size, spec_header, spec_header_size);
71 FireVisionDataFileBlock::FireVisionDataFileBlock(
unsigned int type,
size_t data_size,
72 size_t spec_header_size)
74 constructor(type, data_size, NULL, spec_header_size);
83 FireVisionDataFileBlock::FireVisionDataFileBlock(
unsigned int type,
size_t data_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)
118 _data_size = data_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);
132 __block_header->type = type;
133 __block_header->size = _data_size;
134 __block_header->spec_head_size = spec_header_size;
145 FireVisionDataFileBlock::set_spec_header(
void *spec_header,
size_t 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);
155 memcpy((
char *)newblock +
sizeof(
fvff_block_header_t) + spec_header_size, _data, _data_size);
157 free(__block_memptr);
158 __block_memptr = newblock;
163 __block_header->spec_head_size = spec_header_size;
166 if ( (spec_header != NULL) && (spec_header_size > 0) ) {
167 memcpy((
char *)__block_memptr +
sizeof(
fvff_block_header_t), spec_header, spec_header_size);
173 FireVisionDataFileBlock::~FireVisionDataFileBlock()
175 if ( __block_owner) {
176 free(__block_memptr);
185 FireVisionDataFileBlock::type()
const
187 return __block_header->type;
195 FireVisionDataFileBlock::block_memptr()
const
197 return __block_memptr;
205 FireVisionDataFileBlock::block_size()
const
215 FireVisionDataFileBlock::data_ptr()
const
225 FireVisionDataFileBlock::data_size()
const