SpECTRE  v2024.04.12
Parallel::charmxx::RegisterReceiveData< ParallelComponent, ReceiveTag, UsingMessages > 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 override
 
std::string name () const override
 
- Public Member Functions inherited from Parallel::charmxx::RegistrationHelper
 RegistrationHelper (const RegistrationHelper &)=default
 
RegistrationHelperoperator= (const RegistrationHelper &)=default
 
 RegistrationHelper (RegistrationHelper &&)=default
 
RegistrationHelperoperator= (RegistrationHelper &&)=default
 
virtual void register_with_charm () const =0
 
virtual std::string name () const =0
 
virtual bool is_registering_chare () const
 

Static Public Attributes

static bool registrar
 

Detailed Description

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

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 , bool UsingMessages>
std::string Parallel::charmxx::RegisterReceiveData< ParallelComponent, ReceiveTag, UsingMessages >::name ( ) const
inlineoverridevirtual

◆ register_with_charm()

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

Member Data Documentation

◆ registrar

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

The documentation for this struct was generated from the following file: