Arcane  4.1.12.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

InstanceTypepreviousRegisterer () const
 Previous instance (nullptr if it is the first).
InstanceTypenextRegisterer () const
 Next instance (nullptr if it is the last).

Static Public Member Functions

static InstanceTypefirstRegisterer ()
 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

InstanceTypem_previous = nullptr
InstanceTypem_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: