-
Notifications
You must be signed in to change notification settings - Fork 12
/
bag_interleavedlegacylayerdescriptor.h
70 lines (50 loc) · 2.14 KB
/
bag_interleavedlegacylayerdescriptor.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#ifndef BAG_INTERLEAVEDLAYERDESCRIPTOR_H
#define BAG_INTERLEAVEDLAYERDESCRIPTOR_H
#include "bag_config.h"
#include "bag_fordec.h"
#include "bag_layerdescriptor.h"
#include "bag_types.h"
namespace BAG {
#ifdef _MSC_VER
#pragma warning(push)
#pragma warning(disable: 4251) // std classes do not have DLL-interface when exporting
#endif
//! Describe an interleaved layer.
class BAG_API InterleavedLegacyLayerDescriptor final : public LayerDescriptor
{
public:
static std::shared_ptr<InterleavedLegacyLayerDescriptor> create(
const Dataset& dataset, LayerType layerType, GroupType groupType);
static std::shared_ptr<InterleavedLegacyLayerDescriptor> open(
const Dataset& dataset, LayerType layerType, GroupType groupType);
InterleavedLegacyLayerDescriptor(const InterleavedLegacyLayerDescriptor&) = delete;
InterleavedLegacyLayerDescriptor(InterleavedLegacyLayerDescriptor&&) = delete;
InterleavedLegacyLayerDescriptor& operator=(const InterleavedLegacyLayerDescriptor&) = delete;
InterleavedLegacyLayerDescriptor& operator=(InterleavedLegacyLayerDescriptor&&) = delete;
bool operator==(const InterleavedLegacyLayerDescriptor &rhs) const noexcept {
return m_groupType == rhs.m_groupType &&
m_elementSize == rhs.m_elementSize;
}
bool operator!=(const InterleavedLegacyLayerDescriptor &rhs) const noexcept {
return !(rhs == *this);
}
GroupType getGroupType() const noexcept;
protected:
InterleavedLegacyLayerDescriptor(uint32_t id, LayerType layerType,
GroupType groupType);
InterleavedLegacyLayerDescriptor(const Dataset& dataset, LayerType layerType,
GroupType groupType);
private:
static void validateTypes(LayerType layerType, GroupType groupType);
DataType getDataTypeProxy() const noexcept override;
uint8_t getElementSizeProxy() const noexcept override;
//! The group type.
GroupType m_groupType = UNKNOWN_GROUP_TYPE;
//! The size of a node in the HDF5 DataSet (depends on group type).
uint8_t m_elementSize = 0;
};
#ifdef _MSC_VER
#pragma warning(pop)
#endif
} // namespace BAG
#endif // BAG_INTERLEAVEDLAYERDESCRIPTOR_H