SpECTRE Documentation Coverage Report
Current view: top level - Parallel/Protocols - RegistrationMetavariables.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 25.0 % 4 1
Test Date: 2026-10-22 17:29:42
Legend: Lines:     hit not hit

            Line data    Source code
       1            0 : // Distributed under the MIT License.
       2              : // See LICENSE.txt for details.
       3              : 
       4              : #pragma once
       5              : 
       6              : #include <type_traits>
       7              : 
       8              : #include "Parallel/Protocols/ElementRegistrar.hpp"
       9              : #include "Utilities/TMPL.hpp"
      10              : 
      11              : namespace Parallel::protocols {
      12              : /*!
      13              :  * \brief Conforming types provide compile-time information for registering and
      14              :  * deregistering array elements with other parallel components
      15              :  *
      16              :  * A class conforming to this protocol is placed in the metavariables to provide
      17              :  * a list of element registrars for each array parallel component. The element
      18              :  * registrars in the list must conform to the
      19              :  * `Parallel::protocols::ElementRegistrar` protocol.
      20              :  *
      21              :  * The class conforming to this protocol must provide the following type alias:
      22              :  *
      23              :  * - `element_registrars`: A `tmpl::map` from parallel components to their list
      24              :  *   of element registrars. The element registrars in the typelist must conform
      25              :  *   to the `Parallel::protocols::ElementRegistrar` protocol.
      26              :  *
      27              :  * Here is an example implementation of this protocol:
      28              :  *
      29              :  * \snippet Test_InitializeParent.cpp registration_metavariables
      30              :  *
      31              :  * \note We may consider retrieving the list of element registrars directly from
      32              :  * the `Parallel::Phase::Registration` phase of the parallel component instead
      33              :  * of requiring the metavariables to provide a separate list.
      34              :  */
      35            1 : struct RegistrationMetavariables {
      36              :   template <typename ConformingType>
      37            0 :   struct test {
      38            0 :     using element_registrars = typename ConformingType::element_registrars;
      39              :   };
      40              : };
      41              : }  // namespace Parallel::protocols
        

Generated by: LCOV version 2.0-1