Yet Another eXchange Tool 0.11.3
Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Functions | Variables
xt_request_msgs_ebuf.c File Reference
#include <assert.h>
#include <stdlib.h>
#include <string.h>
#include <mpi.h>
#include "core/ppm_xfuncs.h"
#include "xt/xt_mpi.h"
#include "xt/xt_request_msgs_ebuf.h"
#include "xt_request_msgs_ebuf_internal.h"
#include "xt_config_internal.h"
#include "xt_mpi_internal.h"
#include "xt_request_internal.h"
Include dependency graph for xt_request_msgs_ebuf.c:

Go to the source code of this file.

Classes

struct  Xt_request_msgs_ebuf_
 

Macros

#define no_finalizer   ((void (*)(Xt_request, void *))0)
 

Typedefs

typedef struct Xt_request_msgs_ebuf_Xt_request_msgs_ebuf
 

Functions

static void xt_request_msgs_ebuf_wait (Xt_request request)
 
static int xt_request_msgs_ebuf_test (Xt_request request)
 
Xt_request xt_request_msgs_ebuf_alloc (int n_requests, MPI_Comm comm, size_t extra_buf_size, Xt_config config)
 
static void * extra_buf (Xt_request_msgs_ebuf request_msgs_ebuf)
 
Xt_request xt_request_msgs_ebuf_new (int n_requests, size_t extra_buf_size, Xt_fill_ebuf_requests init, void *data, Xt_request_msgs_ebuf_finalizer finalize, MPI_Comm comm)
 
Xt_request xt_request_msgs_ebuf_custom_new (int n_requests, size_t extra_buf_size, Xt_fill_ebuf_requests init, void *data, Xt_request_msgs_ebuf_finalizer finalize, MPI_Comm comm, Xt_config config)
 
static void finish_requests (Xt_request_msgs_ebuf request_msgs_ebuf)
 
MPI_Request * xt_request_msgs_ebuf_get_req_ptr (Xt_request request)
 
MPI_Comm xt_request_msgs_ebuf_get_comm (Xt_request request)
 
void xt_request_msgs_ebuf_set_finalizer (Xt_request request, Xt_request_msgs_ebuf_finalizer finalizer)
 
void * xt_request_msgs_ebuf_get_extra_buf (Xt_request request)
 

Variables

static const struct Xt_request_vtable request_msgs_ebuf_vtable
 

Detailed Description

Author
Jörg Behrens behre.nosp@m.ns@d.nosp@m.krz.d.nosp@m.e Moritz Hanke hanke.nosp@m.@dkr.nosp@m.z.de Thomas Jahns jahns.nosp@m.@dkr.nosp@m.z.de

Definition in file xt_request_msgs_ebuf.c.

Macro Definition Documentation

◆ no_finalizer

#define no_finalizer   ((void (*)(Xt_request, void *))0)

Definition at line 102 of file xt_request_msgs_ebuf.c.

Typedef Documentation

◆ Xt_request_msgs_ebuf

Definition at line 91 of file xt_request_msgs_ebuf.c.

Function Documentation

◆ extra_buf()

static void * extra_buf ( Xt_request_msgs_ebuf request_msgs_ebuf)
inlinestatic

Definition at line 135 of file xt_request_msgs_ebuf.c.

Here is the caller graph for this function:

◆ finish_requests()

static void finish_requests ( Xt_request_msgs_ebuf request_msgs_ebuf)
static

Definition at line 172 of file xt_request_msgs_ebuf.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ xt_request_msgs_ebuf_alloc()

Xt_request xt_request_msgs_ebuf_alloc ( int n_requests,
MPI_Comm comm,
size_t extra_buf_size,
Xt_config config )
Parameters
n_requestsnumber of requests that can be stored
commcommunicator to use for error handling
configcustom configuration object handle
extra_buf_sizesize of buffer to allocate additionally
Returns
Xt_request_msgs object ready for n MPI requests

Definition at line 105 of file xt_request_msgs_ebuf.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ xt_request_msgs_ebuf_custom_new()

Xt_request xt_request_msgs_ebuf_custom_new ( int n_requests,
size_t extra_buf_size,
Xt_fill_ebuf_requests init,
void * data,
Xt_request_msgs_ebuf_finalizer finalize,
MPI_Comm comm,
Xt_config config )

customizable constructor for message request handle

Parameters
[in]n_requestsnumber of entries in requests array
[in]extra_buf_sizeamount of extra bytes to allocate and make available to init
[in]initfunction to call before returning which will then initialize the requests array completely and the extra buffer as needed
[in]datapointer to caller-defined additional information needed by and passed to init
[in]finalizepointer to function to call when deleting the request handle object (because all requests are finished)
[in]commMPI communicator
[in]configconfiguration object handle
Returns
request handle associated with extra buffer

Definition at line 153 of file xt_request_msgs_ebuf.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ xt_request_msgs_ebuf_get_comm()

MPI_Comm xt_request_msgs_ebuf_get_comm ( Xt_request request)

Definition at line 231 of file xt_request_msgs_ebuf.c.

Here is the caller graph for this function:

◆ xt_request_msgs_ebuf_get_extra_buf()

void * xt_request_msgs_ebuf_get_extra_buf ( Xt_request request)

Definition at line 258 of file xt_request_msgs_ebuf.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ xt_request_msgs_ebuf_get_req_ptr()

MPI_Request * xt_request_msgs_ebuf_get_req_ptr ( Xt_request request)
Parameters
requestxt_request_msgs_ebuf object
Returns
Pointer to first element of MPI_Request array for requests stored in request object

Definition at line 218 of file xt_request_msgs_ebuf.c.

Here is the caller graph for this function:

◆ xt_request_msgs_ebuf_new()

Xt_request xt_request_msgs_ebuf_new ( int n_requests,
size_t extra_buf_size,
Xt_fill_ebuf_requests init,
void * data,
Xt_request_msgs_ebuf_finalizer finalize,
MPI_Comm comm )

constructor for message request handle associated with extra buffer

Parameters
[in]n_requestsnumber of requests needed
[in]extra_buf_sizeamount of extra bytes to allocate and make available to init
[in]initfunction to call before returning which will then initialize the requests array completely and the extra buffer as needed
[in]datapointer to caller-defined additional information needed by and passed to init
[in]finalizepointer to function to call when deleting the request handle object (because all requests are finished)
[in]commMPI communicator
Returns
request handle associated with extra buffer

Definition at line 142 of file xt_request_msgs_ebuf.c.

Here is the call graph for this function:

◆ xt_request_msgs_ebuf_set_finalizer()

void xt_request_msgs_ebuf_set_finalizer ( Xt_request request,
Xt_request_msgs_ebuf_finalizer finalizer )

Definition at line 244 of file xt_request_msgs_ebuf.c.

Here is the caller graph for this function:

◆ xt_request_msgs_ebuf_test()

static int xt_request_msgs_ebuf_test ( Xt_request request)
static

Definition at line 200 of file xt_request_msgs_ebuf.c.

Here is the call graph for this function:

◆ xt_request_msgs_ebuf_wait()

static void xt_request_msgs_ebuf_wait ( Xt_request request)
static

Definition at line 180 of file xt_request_msgs_ebuf.c.

Here is the call graph for this function:

Variable Documentation

◆ request_msgs_ebuf_vtable

const struct Xt_request_vtable request_msgs_ebuf_vtable
static
Initial value:
= {
}
static int xt_request_msgs_ebuf_test(Xt_request request)
static void xt_request_msgs_ebuf_wait(Xt_request request)

Definition at line 78 of file xt_request_msgs_ebuf.c.