BmnRoot
Loading...
Searching...
No Matches
Microslice.h
Go to the documentation of this file.
1// Copyright 2015 Jan de Cuveland <cmail@cuveland.de>
4#pragma once
5
7
8#include <boost/serialization/access.hpp>
9#include <fstream>
10// Note: <fstream> has to precede boost/serialization includes for non-obvious
11// reasons to avoid segfault similar to
12// http://lists.debian.org/debian-hppa/2009/11/msg00069.html
13
14namespace fles
15{
16
24{
25 public:
26 virtual ~Microslice() = 0;
27
29 const MicrosliceDescriptor& desc() const { return *desc_ptr_; }
30
32 const uint8_t* content() const { return content_ptr_; }
33
35 uint32_t compute_crc() const;
36
38 bool check_crc() const;
39
40 protected:
41 Microslice() = default;
42
44 Microslice(MicrosliceDescriptor* desc_ptr, uint8_t* content_ptr)
45 : desc_ptr_(desc_ptr)
46 , content_ptr_(content_ptr) {};
47
48 friend class StorableMicroslice;
49
52
54 uint8_t* content_ptr_;
55};
56
57} // namespace fles
The Microslice class provides read access to the data of a microslice.
Definition Microslice.h:24
const MicrosliceDescriptor & desc() const
Retrieve microslice descriptor reference.
Definition Microslice.h:29
Microslice()=default
uint32_t compute_crc() const
Compute CRC-32 checksum of microslice data content.
bool check_crc() const
Compare computed CRC-32 checksum to value in header.
Microslice(MicrosliceDescriptor *desc_ptr, uint8_t *content_ptr)
Construct microslice with given content.
Definition Microslice.h:44
virtual ~Microslice()=0
const uint8_t * content() const
Retrieve a pointer to the microslice data.
Definition Microslice.h:32
uint8_t * content_ptr_
Pointer to the microslice data content.
Definition Microslice.h:54
MicrosliceDescriptor * desc_ptr_
Pointer to the microslice descriptor.
Definition Microslice.h:51
The StorableMicroslice class contains the data of a single microslice.
Defines the fles::MicrosliceDescriptor struct and corresponding enums.
Main FLES namespace.
Microslice descriptor struct.