SpECTRE Documentation Coverage Report
Current view: top level - Parallel/Algorithms - AlgorithmSingletonDeclarations.hpp Hit Total Coverage
Commit: 9ddc33268b29014a4956c8f0c24ca90b397463e1 Lines: 1 8 12.5 %
Date: 2024-04-26 20:00:04
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 "Parallel/ArrayIndex.hpp"
       7             : 
       8             : #include "Parallel/Algorithms/AlgorithmSingleton.decl.h"
       9             : 
      10             : namespace Parallel {
      11             : namespace Algorithms {
      12             : 
      13             : /*!
      14             :  * \ingroup ParallelGroup
      15             :  * \brief A struct that stores the charm++ types relevant for a particular
      16             :  * singleton component
      17             :  *
      18             :  * \details The type traits are:
      19             :  * - `cproxy`: the charm++ proxy.
      20             :  *   See https://charm.readthedocs.io/en/latest/faq/manual.html#what-is-a-proxy
      21             :  * - `cbase`: the charm++ base class. See
      22             :  *   https://charm.readthedocs.io/en/latest/charm++/manual.html#chare-objects
      23             :  * - `algorithm_type`: the chare type (`AlgorithmSingleton`) for the singleton
      24             :  *   component.
      25             :  * - `ckindex`: A charm++ chare index object. Useful for obtaining entry
      26             :  *   method indices that are needed for creating callbacks. See
      27             :  *   https://charm.readthedocs.io/en/latest/charm++/manual.html#creating-a-ckcallback-object
      28             :  * - component_type: this object. Serves to allow checking the component type in
      29             :  *   both source code and the testing framework.
      30             :  */
      31           1 : struct Singleton {
      32             :   template <typename ParallelComponent, typename SpectreArrayIndex>
      33           0 :   using cproxy =
      34             :       CProxy_AlgorithmSingleton<ParallelComponent, SpectreArrayIndex>;
      35             : 
      36             :   template <typename ParallelComponent, typename SpectreArrayIndex>
      37           0 :   using cbase = CBase_AlgorithmSingleton<ParallelComponent, SpectreArrayIndex>;
      38             : 
      39             :   template <typename ParallelComponent, typename SpectreArrayIndex>
      40           0 :   using algorithm_type =
      41             :       AlgorithmSingleton<ParallelComponent, SpectreArrayIndex>;
      42             : 
      43             :   template <typename ParallelComponent, typename SpectreArrayIndex>
      44           0 :   using ckindex =
      45             :       CkIndex_AlgorithmSingleton<ParallelComponent, SpectreArrayIndex>;
      46             : 
      47             :   template <typename ParallelComponent, typename SpectreArrayIndex>
      48           0 :   using cproxy_section = void;
      49             : 
      50           0 :   using component_type = Singleton;
      51             : };
      52             : }  // namespace Algorithms
      53             : }  // namespace Parallel

Generated by: LCOV version 1.14