7#ifndef LCI_BINDING_PRE_HPP_
8#define LCI_BINDING_PRE_HPP_
224 inline runtime_impl_t *
get_impl()
const {
if (!
p_impl)
throw std::runtime_error(
"runtime p_impl is nullptr!");
return p_impl; }
229class packet_pool_impl_t;
261 inline packet_pool_impl_t *
get_impl()
const {
if (!
p_impl)
throw std::runtime_error(
"packet_pool p_impl is nullptr!");
return p_impl; }
266class matching_engine_impl_t;
291 matching_engine_impl_t*
p_impl =
nullptr;
296 inline matching_engine_impl_t *
get_impl()
const {
if (!
p_impl)
throw std::runtime_error(
"matching_engine p_impl is nullptr!");
return p_impl; }
301class net_context_impl_t;
349 inline net_context_impl_t *
get_impl()
const {
if (!
p_impl)
throw std::runtime_error(
"net_context p_impl is nullptr!");
return p_impl; }
396 inline device_impl_t *
get_impl()
const {
if (!
p_impl)
throw std::runtime_error(
"device p_impl is nullptr!");
return p_impl; }
429 inline mr_impl_t *
get_impl()
const {
if (!
p_impl)
throw std::runtime_error(
"mr p_impl is nullptr!");
return p_impl; }
434class endpoint_impl_t;
464 inline endpoint_impl_t *
get_impl()
const {
if (!
p_impl)
throw std::runtime_error(
"endpoint p_impl is nullptr!");
return p_impl; }
Completion object implementation base type.
Definition lci.hpp:511
The actual implementation for RESOURCE comp.
Definition lci_binding_pre.hpp:490
void set_impl(comp_impl_t *p)
Definition lci_binding_pre.hpp:508
attr_comp_type_t get_attr_comp_type() const
Definition binding.cpp:549
bool get_attr_zero_copy_am() const
Definition binding.cpp:551
int get_attr_sync_threshold() const
Definition binding.cpp:550
bool operator==(const comp_t &other) const
Definition lci_binding_pre.hpp:509
attr_cq_type_t get_attr_cq_type() const
Definition binding.cpp:552
const char * get_attr_name() const
Definition binding.cpp:554
comp_t(void *p)
Definition lci_binding_pre.hpp:505
attr_t get_attr() const
Definition binding.cpp:557
bool is_empty() const
Definition lci.hpp:499
comp_impl_t * p_impl
Definition lci_binding_pre.hpp:502
int get_attr_cq_default_length() const
Definition binding.cpp:553
void * get_attr_user_context() const
Definition binding.cpp:555
comp_attr_t attr_t
Definition lci_binding_pre.hpp:492
comp_impl_t * get_impl() const
Definition lci_binding_pre.hpp:507
The actual implementation for RESOURCE device.
Definition lci_binding_pre.hpp:377
device_attr_t attr_t
Definition lci_binding_pre.hpp:379
device_impl_t * get_impl() const
Definition lci_binding_pre.hpp:396
void * get_attr_user_context() const
Definition binding.cpp:369
int get_attr_uid() const
Definition binding.cpp:366
attr_ibv_td_strategy_t get_attr_ibv_td_strategy() const
Definition binding.cpp:367
size_t get_attr_net_max_cqes() const
Definition binding.cpp:363
uint64_t get_attr_ofi_lock_mode() const
Definition binding.cpp:364
void set_impl(device_impl_t *p)
Definition lci_binding_pre.hpp:397
attr_t get_attr() const
Definition binding.cpp:371
device_t(void *p)
Definition lci_binding_pre.hpp:394
size_t get_attr_net_max_sends() const
Definition binding.cpp:361
const char * get_attr_name() const
Definition binding.cpp:368
bool is_empty() const
Definition lci_binding_pre.hpp:395
size_t get_attr_net_max_recvs() const
Definition binding.cpp:362
bool operator==(const device_t &other) const
Definition lci_binding_pre.hpp:398
device_impl_t * p_impl
Definition lci_binding_pre.hpp:391
bool get_attr_alloc_default_endpoint() const
Definition binding.cpp:365
The actual implementation for RESOURCE endpoint.
Definition lci_binding_pre.hpp:451
endpoint_impl_t * p_impl
Definition lci_binding_pre.hpp:459
const char * get_attr_name() const
Definition binding.cpp:418
bool is_empty() const
Definition lci_binding_pre.hpp:463
void set_impl(endpoint_impl_t *p)
Definition lci_binding_pre.hpp:465
attr_t get_attr() const
Definition binding.cpp:421
bool operator==(const endpoint_t &other) const
Definition lci_binding_pre.hpp:466
endpoint_t(void *p)
Definition lci_binding_pre.hpp:462
endpoint_impl_t * get_impl() const
Definition lci_binding_pre.hpp:464
int get_attr_uid() const
Definition binding.cpp:417
void * get_attr_user_context() const
Definition binding.cpp:419
endpoint_attr_t attr_t
Definition lci_binding_pre.hpp:453
The actual implementation for RESOURCE matching_engine.
Definition lci_binding_pre.hpp:283
matching_engine_impl_t * get_impl() const
Definition lci_binding_pre.hpp:296
matching_engine_attr_t attr_t
Definition lci_binding_pre.hpp:285
void set_impl(matching_engine_impl_t *p)
Definition lci_binding_pre.hpp:297
const char * get_attr_name() const
Definition binding.cpp:255
void * get_attr_user_context() const
Definition binding.cpp:256
matching_engine_impl_t * p_impl
Definition lci_binding_pre.hpp:291
attr_t get_attr() const
Definition binding.cpp:258
bool is_empty() const
Definition lci_binding_pre.hpp:295
matching_engine_t()=default
attr_matching_engine_type_t get_attr_matching_engine_type() const
Definition binding.cpp:254
bool operator==(const matching_engine_t &other) const
Definition lci_binding_pre.hpp:298
matching_engine_t(void *p)
Definition lci_binding_pre.hpp:294
The actual implementation for RESOURCE mr.
Definition lci_binding_pre.hpp:417
void * get_attr_user_context() const
Definition binding.cpp:394
bool operator==(const mr_t &other) const
Definition lci_binding_pre.hpp:431
attr_t get_attr() const
Definition binding.cpp:396
mr_attr_t attr_t
Definition lci_binding_pre.hpp:419
void set_impl(mr_impl_t *p)
Definition lci_binding_pre.hpp:430
mr_t(void *p)
Definition lci_binding_pre.hpp:427
mr_impl_t * p_impl
Definition lci_binding_pre.hpp:424
bool is_empty() const
Definition lci.hpp:321
const char * get_attr_name() const
Definition binding.cpp:393
mr_impl_t * get_impl() const
Definition lci_binding_pre.hpp:429
The actual implementation for RESOURCE net_context.
Definition lci_binding_pre.hpp:327
void * get_attr_user_context() const
Definition binding.cpp:336
attr_backend_t get_attr_backend() const
Definition binding.cpp:325
attr_t get_attr() const
Definition binding.cpp:338
int get_attr_ibv_gid_idx() const
Definition binding.cpp:329
attr_ibv_prefetch_strategy_t get_attr_ibv_prefetch_strategy() const
Definition binding.cpp:332
net_context_impl_t * p_impl
Definition lci_binding_pre.hpp:344
const char * get_attr_name() const
Definition binding.cpp:335
bool operator==(const net_context_t &other) const
Definition lci_binding_pre.hpp:351
bool get_attr_ibv_force_gid_auto_select() const
Definition binding.cpp:330
net_context_impl_t * get_impl() const
Definition lci_binding_pre.hpp:349
bool get_attr_support_putimm() const
Definition binding.cpp:333
size_t get_attr_max_msg_size() const
Definition binding.cpp:327
net_context_attr_t attr_t
Definition lci_binding_pre.hpp:329
std::string get_attr_ofi_provider_name() const
Definition binding.cpp:326
void set_impl(net_context_impl_t *p)
Definition lci_binding_pre.hpp:350
attr_ibv_odp_strategy_t get_attr_ibv_odp_strategy() const
Definition binding.cpp:331
size_t get_attr_max_inject_size() const
Definition binding.cpp:328
bool is_empty() const
Definition lci_binding_pre.hpp:348
bool get_attr_use_dmabuf() const
Definition binding.cpp:334
net_context_t(void *p)
Definition lci_binding_pre.hpp:347
The actual implementation for RESOURCE packet_pool.
Definition lci_binding_pre.hpp:247
packet_pool_impl_t * p_impl
Definition lci_binding_pre.hpp:256
bool operator==(const packet_pool_t &other) const
Definition lci_binding_pre.hpp:263
size_t get_attr_npackets() const
Definition binding.cpp:208
void * get_attr_user_context() const
Definition binding.cpp:210
packet_pool_t(void *p)
Definition lci_binding_pre.hpp:259
const char * get_attr_name() const
Definition binding.cpp:209
void set_impl(packet_pool_impl_t *p)
Definition lci_binding_pre.hpp:262
size_t get_attr_packet_size() const
Definition binding.cpp:207
attr_t get_attr() const
Definition binding.cpp:212
packet_pool_attr_t attr_t
Definition lci_binding_pre.hpp:249
bool is_empty() const
Definition lci_binding_pre.hpp:260
packet_pool_impl_t * get_impl() const
Definition lci_binding_pre.hpp:261
The actual implementation for RESOURCE runtime.
Definition lci_binding_pre.hpp:202
int get_attr_imm_nbits_tag() const
Definition binding.cpp:153
void set_impl(runtime_impl_t *p)
Definition lci_binding_pre.hpp:225
bool get_attr_alloc_default_device() const
Definition binding.cpp:159
bool get_attr_alloc_default_packet_pool() const
Definition binding.cpp:160
void * get_attr_user_context() const
Definition binding.cpp:163
runtime_impl_t * p_impl
Definition lci_binding_pre.hpp:219
runtime_impl_t * get_impl() const
Definition lci_binding_pre.hpp:224
bool is_empty() const
Definition lci_binding_pre.hpp:223
bool operator==(const runtime_t &other) const
Definition lci_binding_pre.hpp:226
uint64_t get_attr_max_imm_tag() const
Definition binding.cpp:155
uint64_t get_attr_max_rcomp() const
Definition binding.cpp:158
int get_attr_imm_nbits_rcomp() const
Definition binding.cpp:154
runtime_t(void *p)
Definition lci_binding_pre.hpp:222
uint64_t get_attr_max_imm_rcomp() const
Definition binding.cpp:156
const char * get_attr_name() const
Definition binding.cpp:162
attr_t get_attr() const
Definition binding.cpp:165
bool get_attr_alloc_default_matching_engine() const
Definition binding.cpp:161
size_t get_attr_packet_return_threshold() const
Definition binding.cpp:152
uint64_t get_attr_max_tag() const
Definition binding.cpp:157
runtime_attr_t attr_t
Definition lci_binding_pre.hpp:204
All LCI API functions and classes are defined in this namespace.
attr_matching_engine_type_t
Definition lci_binding_pre.hpp:28
@ map
Definition lci_binding_pre.hpp:30
@ queue
Definition lci_binding_pre.hpp:29
attr_backend_t
Definition lci.hpp:65
@ none
Definition lci.hpp:66
attr_comp_type_t
Definition lci_binding_pre.hpp:52
@ cq
Definition lci_binding_pre.hpp:55
@ sync
Definition lci_binding_pre.hpp:53
@ counter
Definition lci_binding_pre.hpp:54
@ custom
Definition lci_binding_pre.hpp:58
@ handler
Definition lci_binding_pre.hpp:56
@ graph
Definition lci_binding_pre.hpp:57
global_attr_t g_default_attr
Definition binding.cpp:12
attr_ibv_td_strategy_t
Definition lci_binding_pre.hpp:46
@ all_qp
Definition lci_binding_pre.hpp:48
@ per_qp
Definition lci_binding_pre.hpp:49
attr_ibv_odp_strategy_t
Definition lci_binding_pre.hpp:33
@ explicit_odp
Definition lci_binding_pre.hpp:35
@ implicit_odp
Definition lci_binding_pre.hpp:36
attr_ibv_prefetch_strategy_t
Definition lci_binding_pre.hpp:39
@ prefetch
Definition lci_binding_pre.hpp:41
@ prefetch_write
Definition lci_binding_pre.hpp:42
@ prefetch_no_fault
Definition lci_binding_pre.hpp:43
attr_cq_type_t
Definition lci_binding_pre.hpp:61
@ lcrq
Definition lci_binding_pre.hpp:63
@ array_atomic
Definition lci_binding_pre.hpp:62
Definition lci_binding_pre.hpp:133
const char * name
Definition lci_binding_pre.hpp:139
attr_comp_type_t comp_type
Definition lci_binding_pre.hpp:134
bool zero_copy_am
Definition lci_binding_pre.hpp:136
int sync_threshold
Definition lci_binding_pre.hpp:135
void * user_context
Definition lci_binding_pre.hpp:140
int cq_default_length
Definition lci_binding_pre.hpp:138
attr_cq_type_t cq_type
Definition lci_binding_pre.hpp:137
Definition lci_binding_pre.hpp:110
int uid
Definition lci_binding_pre.hpp:116
size_t net_max_sends
Definition lci_binding_pre.hpp:111
attr_ibv_td_strategy_t ibv_td_strategy
Definition lci_binding_pre.hpp:117
const char * name
Definition lci_binding_pre.hpp:118
uint64_t ofi_lock_mode
Definition lci_binding_pre.hpp:114
void * user_context
Definition lci_binding_pre.hpp:119
size_t net_max_recvs
Definition lci_binding_pre.hpp:112
size_t net_max_cqes
Definition lci_binding_pre.hpp:113
bool alloc_default_endpoint
Definition lci_binding_pre.hpp:115
Definition lci_binding_pre.hpp:127
void * user_context
Definition lci_binding_pre.hpp:130
const char * name
Definition lci_binding_pre.hpp:129
int uid
Definition lci_binding_pre.hpp:128
Definition lci_binding_pre.hpp:143
int imm_nbits_tag
Definition lci_binding_pre.hpp:145
bool alloc_default_endpoint
Definition lci_binding_pre.hpp:166
int imm_nbits_rcomp
Definition lci_binding_pre.hpp:146
size_t net_max_recvs
Definition lci_binding_pre.hpp:163
attr_ibv_prefetch_strategy_t ibv_prefetch_strategy
Definition lci_binding_pre.hpp:160
attr_backend_t backend
Definition lci_binding_pre.hpp:153
size_t packet_return_threshold
Definition lci_binding_pre.hpp:144
bool alloc_default_packet_pool
Definition lci_binding_pre.hpp:148
size_t max_inject_size
Definition lci_binding_pre.hpp:156
bool zero_copy_am
Definition lci_binding_pre.hpp:169
bool use_dmabuf
Definition lci_binding_pre.hpp:161
attr_ibv_odp_strategy_t ibv_odp_strategy
Definition lci_binding_pre.hpp:159
bool ibv_force_gid_auto_select
Definition lci_binding_pre.hpp:158
size_t max_msg_size
Definition lci_binding_pre.hpp:155
int ibv_gid_idx
Definition lci_binding_pre.hpp:157
std::string ofi_provider_name
Definition lci_binding_pre.hpp:154
bool alloc_default_matching_engine
Definition lci_binding_pre.hpp:149
size_t packet_size
Definition lci_binding_pre.hpp:150
attr_ibv_td_strategy_t ibv_td_strategy
Definition lci_binding_pre.hpp:167
uint64_t ofi_lock_mode
Definition lci_binding_pre.hpp:165
size_t net_max_sends
Definition lci_binding_pre.hpp:162
int cq_default_length
Definition lci_binding_pre.hpp:171
bool alloc_default_device
Definition lci_binding_pre.hpp:147
attr_matching_engine_type_t matching_engine_type
Definition lci_binding_pre.hpp:152
size_t npackets
Definition lci_binding_pre.hpp:151
int sync_threshold
Definition lci_binding_pre.hpp:168
size_t net_max_cqes
Definition lci_binding_pre.hpp:164
attr_cq_type_t cq_type
Definition lci_binding_pre.hpp:170
Definition lci_binding_pre.hpp:89
const char * name
Definition lci_binding_pre.hpp:91
attr_matching_engine_type_t matching_engine_type
Definition lci_binding_pre.hpp:90
void * user_context
Definition lci_binding_pre.hpp:92
Definition lci_binding_pre.hpp:122
void * user_context
Definition lci_binding_pre.hpp:124
const char * name
Definition lci_binding_pre.hpp:123
Definition lci_binding_pre.hpp:95
bool support_putimm
Definition lci_binding_pre.hpp:104
const char * name
Definition lci_binding_pre.hpp:106
size_t max_msg_size
Definition lci_binding_pre.hpp:98
attr_ibv_odp_strategy_t ibv_odp_strategy
Definition lci_binding_pre.hpp:102
attr_backend_t backend
Definition lci_binding_pre.hpp:96
int ibv_gid_idx
Definition lci_binding_pre.hpp:100
std::string ofi_provider_name
Definition lci_binding_pre.hpp:97
void * user_context
Definition lci_binding_pre.hpp:107
attr_ibv_prefetch_strategy_t ibv_prefetch_strategy
Definition lci_binding_pre.hpp:103
bool use_dmabuf
Definition lci_binding_pre.hpp:105
bool ibv_force_gid_auto_select
Definition lci_binding_pre.hpp:101
size_t max_inject_size
Definition lci_binding_pre.hpp:99
Definition lci_binding_pre.hpp:82
void * user_context
Definition lci_binding_pre.hpp:86
size_t npackets
Definition lci_binding_pre.hpp:84
const char * name
Definition lci_binding_pre.hpp:85
size_t packet_size
Definition lci_binding_pre.hpp:83
Definition lci_binding_pre.hpp:67
uint64_t max_imm_rcomp
Definition lci_binding_pre.hpp:72
uint64_t max_rcomp
Definition lci_binding_pre.hpp:74
const char * name
Definition lci_binding_pre.hpp:78
size_t packet_return_threshold
Definition lci_binding_pre.hpp:68
bool alloc_default_packet_pool
Definition lci_binding_pre.hpp:76
bool alloc_default_device
Definition lci_binding_pre.hpp:75
void * user_context
Definition lci_binding_pre.hpp:79
int imm_nbits_tag
Definition lci_binding_pre.hpp:69
bool alloc_default_matching_engine
Definition lci_binding_pre.hpp:77
int imm_nbits_rcomp
Definition lci_binding_pre.hpp:70
uint64_t max_tag
Definition lci_binding_pre.hpp:73
uint64_t max_imm_tag
Definition lci_binding_pre.hpp:71