Fawkes API  Fawkes Development Version
fvfile_block.h
1 
2 /***************************************************************************
3  * fvfile_block.h - FireVision file block
4  *
5  * Created: Fri Mar 28 11:52:45 2008
6  * Copyright 2008 Tim Niemueller [www.niemueller.de]
7  *
8  ****************************************************************************/
9 
10 /* This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version. A runtime exception applies to
14  * this software (see LICENSE.GPL_WRE file mentioned below for details).
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU Library General Public License for more details.
20  *
21  * Read the full text in the LICENSE.GPL_WRE file in the doc directory.
22  */
23 
24 #ifndef _FIREVISION_FVUTILS_FILEFORMAT_FVFILE_BLOCK_H_
25 #define _FIREVISION_FVUTILS_FILEFORMAT_FVFILE_BLOCK_H_
26 
27 #include <fvutils/fileformat/fvff.h>
28 
29 #include <cstddef>
30 
31 namespace firevision {
32 
34 {
35 public:
36  FireVisionDataFileBlock(unsigned int type,
37  size_t data_size,
38  void * spec_header,
39  size_t spec_header_size);
40  FireVisionDataFileBlock(unsigned int type, size_t data_size, size_t spec_header_size);
41  FireVisionDataFileBlock(unsigned int type, size_t data_size);
43  virtual ~FireVisionDataFileBlock();
44 
45  unsigned int type() const;
46  void * block_memptr() const;
47  size_t block_size() const;
48  void * data_ptr() const;
49  size_t data_size() const;
50 
51 protected:
52  void set_spec_header(void *spec_header, size_t spec_header_size);
53 
54  void * _data;
55  size_t _data_size;
56  void * _spec_header;
57 
58 private:
59  void constructor(unsigned int type, size_t data_size, void *spec_header, size_t spec_header_size);
60 
61  fvff_block_header_t *block_header_;
62  void * block_memptr_;
63  size_t block_size_;
64  bool block_owner_;
65 
66  size_t spec_header_size_;
67 };
68 
69 } // end namespace firevision
70 
71 #endif
firevision::FireVisionDataFileBlock::set_spec_header
void set_spec_header(void *spec_header, size_t spec_header_size)
Set content-specific header.
Definition: fvfile_block.cpp:141
firevision::FireVisionDataFileBlock::data_size
size_t data_size() const
Size of data chunk.
Definition: fvfile_block.cpp:215
firevision::FireVisionDataFileBlock::block_size
size_t block_size() const
Size of blocks.
Definition: fvfile_block.cpp:197
firevision::FireVisionDataFileBlock::~FireVisionDataFileBlock
virtual ~FireVisionDataFileBlock()
Destructor.
Definition: fvfile_block.cpp:168
firevision::FireVisionDataFileBlock::block_memptr
void * block_memptr() const
Pointer to the whole block.
Definition: fvfile_block.cpp:188
firevision::FireVisionDataFileBlock::_data
void * _data
Pointer to the internal data segment.
Definition: fvfile_block.h:54
firevision::FireVisionDataFileBlock::type
unsigned int type() const
Get block type.
Definition: fvfile_block.cpp:179
firevision::_fvff_block_header_t
Block header.
Definition: fvff.h:74
firevision::FireVisionDataFileBlock::data_ptr
void * data_ptr() const
Get data pointer.
Definition: fvfile_block.cpp:206
firevision::FireVisionDataFileBlock::_spec_header
void * _spec_header
Pointer to the content specific block header.
Definition: fvfile_block.h:56
firevision::FireVisionDataFileBlock::_data_size
size_t _data_size
Size of _data in bytes.
Definition: fvfile_block.h:55
firevision::FireVisionDataFileBlock
FireVision File Format data block.
Definition: fvfile_block.h:34
firevision::FireVisionDataFileBlock::FireVisionDataFileBlock
FireVisionDataFileBlock(unsigned int type, size_t data_size, void *spec_header, size_t spec_header_size)
Constructor.
Definition: fvfile_block.cpp:55