mdds
standard_element_blocks.hpp
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 
3 // SPDX-FileCopyrightText: 2022 - 2025 Kohei Yoshida
4 //
5 // SPDX-License-Identifier: MIT
6 
7 #pragma once
8 
9 #include "types.hpp"
10 #include "util.hpp"
11 #include "block_funcs.hpp"
12 #include "macro.hpp"
13 
14 namespace mdds { namespace mtv {
15 
16 constexpr element_t element_type_boolean = element_type_reserved_start;
17 constexpr element_t element_type_int8 = element_type_reserved_start + 1;
18 constexpr element_t element_type_uint8 = element_type_reserved_start + 2;
19 constexpr element_t element_type_int16 = element_type_reserved_start + 3;
20 constexpr element_t element_type_uint16 = element_type_reserved_start + 4;
21 constexpr element_t element_type_int32 = element_type_reserved_start + 5;
22 constexpr element_t element_type_uint32 = element_type_reserved_start + 6;
23 constexpr element_t element_type_int64 = element_type_reserved_start + 7;
24 constexpr element_t element_type_uint64 = element_type_reserved_start + 8;
25 constexpr element_t element_type_float = element_type_reserved_start + 9;
26 constexpr element_t element_type_double = element_type_reserved_start + 10;
27 constexpr element_t element_type_string = element_type_reserved_start + 11;
28 
29 using boolean_element_block = default_element_block<element_type_boolean, bool>;
30 using int8_element_block = default_element_block<element_type_int8, int8_t>;
31 using uint8_element_block = default_element_block<element_type_uint8, uint8_t>;
32 using int16_element_block = default_element_block<element_type_int16, int16_t>;
33 using uint16_element_block = default_element_block<element_type_uint16, uint16_t>;
34 using int32_element_block = default_element_block<element_type_int32, int32_t>;
35 using uint32_element_block = default_element_block<element_type_uint32, uint32_t>;
36 using int64_element_block = default_element_block<element_type_int64, int64_t>;
37 using uint64_element_block = default_element_block<element_type_uint64, uint64_t>;
38 using float_element_block = default_element_block<element_type_float, float>;
39 using double_element_block = default_element_block<element_type_double, double>;
40 using string_element_block = default_element_block<element_type_string, std::string>;
41 
42 MDDS_MTV_DEFINE_ELEMENT_CALLBACKS(bool, element_type_boolean, false, boolean_element_block)
43 MDDS_MTV_DEFINE_ELEMENT_CALLBACKS(int8_t, element_type_int8, 0, int8_element_block)
44 MDDS_MTV_DEFINE_ELEMENT_CALLBACKS(uint8_t, element_type_uint8, 0, uint8_element_block)
45 MDDS_MTV_DEFINE_ELEMENT_CALLBACKS(int16_t, element_type_int16, 0, int16_element_block)
46 MDDS_MTV_DEFINE_ELEMENT_CALLBACKS(uint16_t, element_type_uint16, 0, uint16_element_block)
47 MDDS_MTV_DEFINE_ELEMENT_CALLBACKS(int32_t, element_type_int32, 0, int32_element_block)
48 MDDS_MTV_DEFINE_ELEMENT_CALLBACKS(uint32_t, element_type_uint32, 0, uint32_element_block)
49 MDDS_MTV_DEFINE_ELEMENT_CALLBACKS(int64_t, element_type_int64, 0, int64_element_block)
50 MDDS_MTV_DEFINE_ELEMENT_CALLBACKS(uint64_t, element_type_uint64, 0, uint64_element_block)
51 MDDS_MTV_DEFINE_ELEMENT_CALLBACKS(float, element_type_float, 0.0, float_element_block)
52 MDDS_MTV_DEFINE_ELEMENT_CALLBACKS(double, element_type_double, 0.0, double_element_block)
53 MDDS_MTV_DEFINE_ELEMENT_CALLBACKS(std::string, element_type_string, std::string(), string_element_block)
54 
56 {
61 };
62 
63 }} // namespace mdds::mtv
64 
65 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Definition: types.hpp:706
Definition: util.hpp:55
Definition: cref_wrapper.hpp:12
Definition: block_funcs.hpp:42
Definition: standard_element_blocks.hpp:55