Arcane  4.2.3.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::GenericRegisterer< Type > Class Template Reference

Template class to manage a global list for registering factories. More...

#include </__w/arcaneframework.github.io/arcaneframework.github.io/framework/arccore/src/base/arccore/base/GenericRegisterer.h>

Inheritance diagram for Arcane::GenericRegisterer< Type >:
Collaboration diagram for Arcane::GenericRegisterer< Type >:

Classes

class  Info

Public Types

using InstanceType = Type

Public Member Functions

InstanceType * previousRegisterer () const
 Previous instance (nullptr if it is the first).
InstanceType * nextRegisterer () const
 Next instance (nullptr if it is the last).

Static Public Member Functions

static InstanceType * firstRegisterer ()
 Access to the first element of the registerer chain.
static Integer nbRegisterer ()
 Number of service registerers in the chain.

Private Member Functions

void _init () noexcept

Private Attributes

InstanceType * m_previous = nullptr
InstanceType * m_next = nullptr

Additional Inherited Members

Protected Member Functions inherited from Arcane::GenericRegistererBase
void doErrorConflict ()
void doErrorNonZeroCount ()

Detailed Description

template<typename Type>
class Arcane::GenericRegisterer< Type >

Template class to manage a global list for registering factories.

This class uses the Curiously Recurring Template Pattern (CRTP). The template parameter must be the derived class and must have a method globalRegistererInfo() as follows:

class MyRegisterer
: public GenericRegisterer<MyRegisterer>
{
public:
};

Definition at line 53 of file arccore/src/base/arccore/base/GenericRegisterer.h.

Member Typedef Documentation

◆ InstanceType

template<typename Type>
using Arcane::GenericRegisterer< Type >::InstanceType = Type

Constructor & Destructor Documentation

◆ GenericRegisterer()

template<typename Type>
Arcane::GenericRegisterer< Type >::GenericRegisterer ( )
inlinenoexcept

Member Function Documentation

◆ _init()

template<typename Type>
void Arcane::GenericRegisterer< Type >::_init ( )
inlineprivatenoexcept

◆ firstRegisterer()

template<typename Type>
InstanceType * Arcane::GenericRegisterer< Type >::firstRegisterer ( )
inlinestatic

Access to the first element of the registerer chain.

Definition at line 95 of file arccore/src/base/arccore/base/GenericRegisterer.h.

Referenced by Arcane::GenericRegisterer< MeshMaterialVariableFactoryRegisterer >::Info< MeshMaterialVariableFactoryRegisterer >::firstRegisterer().

Here is the caller graph for this function:

◆ nbRegisterer()

template<typename Type>
Integer Arcane::GenericRegisterer< Type >::nbRegisterer ( )
inlinestatic

Number of service registerers in the chain.

Definition at line 101 of file arccore/src/base/arccore/base/GenericRegisterer.h.

◆ nextRegisterer()

template<typename Type>
InstanceType * Arcane::GenericRegisterer< Type >::nextRegisterer ( ) const
inline

Next instance (nullptr if it is the last).

Definition at line 90 of file arccore/src/base/arccore/base/GenericRegisterer.h.

◆ previousRegisterer()

template<typename Type>
InstanceType * Arcane::GenericRegisterer< Type >::previousRegisterer ( ) const
inline

Previous instance (nullptr if it is the first).

Definition at line 87 of file arccore/src/base/arccore/base/GenericRegisterer.h.

Member Data Documentation

◆ m_next

template<typename Type>
InstanceType* Arcane::GenericRegisterer< Type >::m_next = nullptr
private

◆ m_previous

template<typename Type>
InstanceType* Arcane::GenericRegisterer< Type >::m_previous = nullptr
private

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