Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::MessagePassing::Request Class Reference

Message request. More...

#include </__w/arcaneframework.github.io/arcaneframework.github.io/framework/arccore/src/message_passing/arccore/message_passing/Request.h>

Inheritance diagram for Arcane::MessagePassing::Request:
Collaboration diagram for Arcane::MessagePassing::Request:

Classes

union  _Request

Public Member Functions

 Request (int return_value, void *arequest)
 Request (int return_value, const void *arequest)
 Request (int return_value, int arequest)
 Request (int return_value, long arequest)
 Request (int return_value, std::size_t arequest)
 Request (int return_value, IRequestCreator *creator, void *arequest)
 Request (int return_value, IRequestCreator *creator, const void *arequest)
 Request (int return_value, IRequestCreator *creator, int arequest)
 Request (int return_value, IRequestCreator *creator, long arequest)
 Request (int return_value, IRequestCreator *creator, std::size_t arequest)
template<typename T>
 operator const T * () const
template<typename T>
 operator T* () const
 operator int () const
 operator long () const
 operator size_t () const
int returnValue () const
bool isValid () const
void * requestAsVoidPtr () const
void reset ()
Ref< ISubRequestsubRequest () const
bool hasSubRequest () const
void setSubRequest (Ref< ISubRequest > s)
IRequestCreatorcreator () const
 Request creator.
void print (std::ostream &o) const
Int32 _type () const

Static Public Member Functions

static void setNullRequest (Request r)

Private Types

enum  Type {
  T_Int , T_Long , T_SizeT , T_Ptr ,
  T_Null
}

Private Attributes

int m_return_value = 0
int m_type = T_Null
_Request m_request
Ref< ISubRequestm_sub_request
IRequestCreatorm_creator = nullptr

Static Private Attributes

static _Request null_request
static int null_request_type = Request::T_Null

Friends

std::ostream & operator<< (std::ostream &o, const Request &prequest)

Detailed Description

Message request.

This information is used for non-blocking messages. A non-null request is associated with an IMessagePassingMng.

This class allows generically storing a request without knowing its exact type (for example, MPI_Request with the MPI standard). For this, a union is used. To ensure that an instance of this class is created with the correct parameters, it is preferable to use a specialization (for example, the MpiRequest class).

A request can be associated with a sub-request (ISubRequest) whose method ISubRequest::executeOnCompletion() will be executed when the request is satisfied. This allows for the automatic generation of other requests.

Definition at line 83 of file Request.h.

Member Enumeration Documentation

◆ Type

enum Arcane::MessagePassing::Request::Type
private

Definition at line 94 of file Request.h.

Constructor & Destructor Documentation

◆ Request() [1/11]

Arcane::MessagePassing::Request::Request ( )
inline

Definition at line 105 of file Request.h.

◆ Request() [2/11]

Arcane::MessagePassing::Request::Request ( int return_value,
void * arequest )
inline

Definition at line 114 of file Request.h.

◆ Request() [3/11]

Arcane::MessagePassing::Request::Request ( int return_value,
const void * arequest )
inline

Definition at line 122 of file Request.h.

◆ Request() [4/11]

Arcane::MessagePassing::Request::Request ( int return_value,
int arequest )
inline

Definition at line 130 of file Request.h.

◆ Request() [5/11]

Arcane::MessagePassing::Request::Request ( int return_value,
long arequest )
inline

Definition at line 138 of file Request.h.

◆ Request() [6/11]

Arcane::MessagePassing::Request::Request ( int return_value,
std::size_t arequest )
inline

Definition at line 146 of file Request.h.

◆ Request() [7/11]

Arcane::MessagePassing::Request::Request ( int return_value,
IRequestCreator * creator,
void * arequest )
inline

Definition at line 155 of file Request.h.

◆ Request() [8/11]

Arcane::MessagePassing::Request::Request ( int return_value,
IRequestCreator * creator,
const void * arequest )
inline

Definition at line 163 of file Request.h.

◆ Request() [9/11]

Arcane::MessagePassing::Request::Request ( int return_value,
IRequestCreator * creator,
int arequest )
inline

Definition at line 171 of file Request.h.

◆ Request() [10/11]

Arcane::MessagePassing::Request::Request ( int return_value,
IRequestCreator * creator,
long arequest )
inline

Definition at line 179 of file Request.h.

◆ Request() [11/11]

Arcane::MessagePassing::Request::Request ( int return_value,
IRequestCreator * creator,
std::size_t arequest )
inline

Definition at line 187 of file Request.h.

Member Function Documentation

◆ _type()

Int32 Arcane::MessagePassing::Request::_type ( ) const
inline

Definition at line 256 of file Request.h.

◆ creator()

IRequestCreator * Arcane::MessagePassing::Request::creator ( ) const
inline

Request creator.

Definition at line 245 of file Request.h.

◆ hasSubRequest()

bool Arcane::MessagePassing::Request::hasSubRequest ( ) const
inline

Definition at line 241 of file Request.h.

◆ isValid()

bool Arcane::MessagePassing::Request::isValid ( ) const
inline

Definition at line 208 of file Request.h.

◆ operator const T *()

template<typename T>
Arcane::MessagePassing::Request::operator const T * ( ) const
inline

Definition at line 198 of file Request.h.

◆ operator int()

Arcane::MessagePassing::Request::operator int ( ) const
inline

Definition at line 201 of file Request.h.

◆ operator long()

Arcane::MessagePassing::Request::operator long ( ) const
inline

Definition at line 202 of file Request.h.

◆ operator size_t()

Arcane::MessagePassing::Request::operator size_t ( ) const
inline

Definition at line 203 of file Request.h.

◆ operator T*()

template<typename T>
Arcane::MessagePassing::Request::operator T* ( ) const
inline

Definition at line 200 of file Request.h.

◆ print()

void Arcane::MessagePassing::Request::print ( std::ostream & o) const

Definition at line 33 of file Request.cc.

◆ requestAsVoidPtr()

void * Arcane::MessagePassing::Request::requestAsVoidPtr ( ) const
inline

Definition at line 226 of file Request.h.

◆ reset()

void Arcane::MessagePassing::Request::reset ( )
inline

Definition at line 234 of file Request.h.

◆ returnValue()

int Arcane::MessagePassing::Request::returnValue ( ) const
inline

Definition at line 207 of file Request.h.

◆ setNullRequest()

void Arcane::MessagePassing::Request::setNullRequest ( Request r)
inlinestatic

Definition at line 228 of file Request.h.

◆ setSubRequest()

void Arcane::MessagePassing::Request::setSubRequest ( Ref< ISubRequest > s)
inline

Definition at line 242 of file Request.h.

◆ subRequest()

Ref< ISubRequest > Arcane::MessagePassing::Request::subRequest ( ) const
inline

Definition at line 240 of file Request.h.

◆ operator<<

std::ostream & operator<< ( std::ostream & o,
const Request & prequest )
friend

Definition at line 249 of file Request.h.

Member Data Documentation

◆ m_creator

IRequestCreator* Arcane::MessagePassing::Request::m_creator = nullptr
private

Definition at line 264 of file Request.h.

◆ m_request

_Request Arcane::MessagePassing::Request::m_request
private

Definition at line 262 of file Request.h.

◆ m_return_value

int Arcane::MessagePassing::Request::m_return_value = 0
private

Definition at line 260 of file Request.h.

◆ m_sub_request

Ref<ISubRequest> Arcane::MessagePassing::Request::m_sub_request
private

Definition at line 263 of file Request.h.

◆ m_type

int Arcane::MessagePassing::Request::m_type = T_Null
private

Definition at line 261 of file Request.h.

◆ null_request

Request::_Request Arcane::MessagePassing::Request::null_request
staticprivate

Definition at line 265 of file Request.h.

◆ null_request_type

int Arcane::MessagePassing::Request::null_request_type = Request::T_Null
staticprivate

Definition at line 266 of file Request.h.


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