SpECTRE  2021.08.02
Parallel::charmxx::RegisterReceiveData< ParallelComponent, ReceiveTag > Struct Template Reference

Derived class for registering receive_data functions. More...

#include <CharmRegistration.hpp>

Public Types

using chare_type = typename ParallelComponent::chare_type
 
using charm_type = charm_types_with_parameters< ParallelComponent, typename get_array_index< chare_type >::template f< ParallelComponent > >
 
using cproxy = typename charm_type::cproxy
 
using ckindex = typename charm_type::ckindex
 
using algorithm = typename charm_type::algorithm
 

Public Member Functions

 RegisterReceiveData (const RegisterReceiveData &)=default
 
RegisterReceiveDataoperator= (const RegisterReceiveData &)=default
 
 RegisterReceiveData (RegisterReceiveData &&)=default
 
RegisterReceiveDataoperator= (RegisterReceiveData &&)=default
 
void register_with_charm () const noexcept override
 
std::string name () const noexcept override
 
- Public Member Functions inherited from Parallel::charmxx::RegistrationHelper
 RegistrationHelper (const RegistrationHelper &)=default
 
RegistrationHelperoperator= (const RegistrationHelper &)=default
 
 RegistrationHelper (RegistrationHelper &&)=default
 
RegistrationHelperoperator= (RegistrationHelper &&)=default
 
virtual bool is_registering_chare () const noexcept
 

Static Public Attributes

static bool registrar
 

Detailed Description

template<typename ParallelComponent, typename ReceiveTag>
struct Parallel::charmxx::RegisterReceiveData< ParallelComponent, ReceiveTag >

Derived class for registering receive_data functions.

Calls the appropriate Charm++ function to register a receive_data function. There is a bug in Charm++ that doesn't allow default values for entry method arguments for groups and nodegroups, so we have to handle the (node)group cases separately from the singleton and array cases.

Member Function Documentation

◆ name()

template<typename ParallelComponent , typename ReceiveTag >
std::string Parallel::charmxx::RegisterReceiveData< ParallelComponent, ReceiveTag >::name ( ) const
inlineoverridevirtualnoexcept

◆ register_with_charm()

template<typename ParallelComponent , typename ReceiveTag >
void Parallel::charmxx::RegisterReceiveData< ParallelComponent, ReceiveTag >::register_with_charm ( ) const
inlineoverridevirtualnoexcept

Member Data Documentation

◆ registrar

template<typename ParallelComponent , typename ReceiveTag >
bool Parallel::charmxx::RegisterReceiveData< ParallelComponent, ReceiveTag >::registrar
static
Initial value:
=
RegisterReceiveData<ParallelComponent, ReceiveTag>>()
bool register_func_with_charm() noexcept
Function that adds a pointer to a specific derived class to the charm_register_list
Definition: CharmRegistration.hpp:641