• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

STEllAR-GROUP / hpx / #882

31 Aug 2023 07:44PM UTC coverage: 41.798% (-44.7%) from 86.546%
#882

push

19442 of 46514 relevant lines covered (41.8%)

126375.38 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

50.0
/libs/full/runtime_components/include/hpx/runtime_components/distributed_metadata_base.hpp
1
//  Copyright (c) 2007-2024 Hartmut Kaiser
2
//
3
//  SPDX-License-Identifier: BSL-1.0
4
//  Distributed under the Boost Software License, Version 1.0. (See accompanying
5
//  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6

7
#pragma once
8

9
#include <hpx/config.hpp>
10
#include <hpx/actions/transfer_action.hpp>
11
#include <hpx/actions_base/component_action.hpp>
12
#include <hpx/assert.hpp>
13
#include <hpx/async_distributed/base_lco_with_value.hpp>
14
#include <hpx/async_distributed/transfer_continuation_action.hpp>
15
#include <hpx/components_base/server/component.hpp>
16
#include <hpx/components_base/server/component_base.hpp>
17
#include <hpx/modules/preprocessor.hpp>
18

19
#include <type_traits>
20

21
namespace hpx::components::server {
22

23
    ///////////////////////////////////////////////////////////////////////////
24
    template <typename ConfigData, typename Derived = void>
25
    class distributed_metadata_base
26
      : public hpx::components::component_base<
27
            std::conditional_t<std::is_void_v<Derived>,
28
                distributed_metadata_base<ConfigData, Derived>, Derived>>
29
    {
30
    public:
31
        distributed_metadata_base()
32
        {
33
            HPX_ASSERT(false);
34
        }
35

36
        explicit distributed_metadata_base(ConfigData const& data)
37
          : data_(data)
38
        {
39
        }
40

41
        /// Retrieve the configuration data.
42
        ConfigData get() const
43
        {
44
            return data_;
45
        }
46

47
        HPX_DEFINE_COMPONENT_DIRECT_ACTION(distributed_metadata_base, get)
1✔
48

49
    private:
50
        ConfigData data_;
1✔
51
    };
52
}    // namespace hpx::components::server
53

×
54
#define HPX_DISTRIBUTED_METADATA_DECLARATION(...)                              \
55
    HPX_DISTRIBUTED_METADATA_DECLARATION_(__VA_ARGS__)                         \
×
56
    /**/
57
#define HPX_DISTRIBUTED_METADATA_DECLARATION_(...)                             \
58
    HPX_PP_EXPAND(HPX_PP_CAT(HPX_DISTRIBUTED_METADATA_DECLARATION_,            \
59
        HPX_PP_NARGS(__VA_ARGS__))(__VA_ARGS__))                               \
60
    /**/
61

62
#define HPX_DISTRIBUTED_METADATA_DECLARATION_1(config)                         \
63
    HPX_DISTRIBUTED_METADATA_DECLARATION_2(config, config)                     \
64
    /**/
65
#define HPX_DISTRIBUTED_METADATA_DECLARATION_2(config, name)                   \
66
    HPX_REGISTER_ACTION_DECLARATION(                                           \
67
        ::hpx::components::server::distributed_metadata_base<                  \
68
            config>::get_action,                                               \
69
        HPX_PP_CAT(__distributed_metadata_get_action_, name))                  \
70
    HPX_REGISTER_ACTION_DECLARATION(                                           \
71
        ::hpx::lcos::base_lco_with_value<config>::set_value_action,            \
72
        HPX_PP_CAT(__set_value_distributed_metadata_config_data_, name))       \
73
    /**/
74

75
#define HPX_DISTRIBUTED_METADATA(...)                                          \
76
    HPX_DISTRIBUTED_METADATA_(__VA_ARGS__)                                     \
77
    /**/
78
#define HPX_DISTRIBUTED_METADATA_(...)                                         \
79
    HPX_PP_EXPAND(HPX_PP_CAT(                                                  \
80
        HPX_DISTRIBUTED_METADATA_, HPX_PP_NARGS(__VA_ARGS__))(__VA_ARGS__))    \
81
    /**/
82

83
#define HPX_DISTRIBUTED_METADATA_1(config)                                     \
84
    HPX_DISTRIBUTED_METADATA_2(config, config)                                 \
85
    /**/
86
#define HPX_DISTRIBUTED_METADATA_2(config, name)                               \
87
    HPX_REGISTER_ACTION(::hpx::components::server::distributed_metadata_base<  \
88
                            config>::get_action,                               \
89
        HPX_PP_CAT(__distributed_metadata_get_action_, name))                  \
90
    HPX_REGISTER_ACTION(                                                       \
91
        ::hpx::lcos::base_lco_with_value<config>::set_value_action,            \
92
        HPX_PP_CAT(__set_value_distributed_metadata_config_data_, name))       \
93
    typedef ::hpx::components::component<                                      \
94
        ::hpx::components::server::distributed_metadata_base<config>>          \
95
        HPX_PP_CAT(__distributed_metadata_, name);                             \
96
    HPX_REGISTER_COMPONENT(HPX_PP_CAT(__distributed_metadata_, name))          \
97
    /**/
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc