DAOS API
(v2.1 - dev)
Loading...
Searching...
No Matches
daos_pipeline.h
1
6
/*
7
* The Pipeline API is under heavy development and should not be used in production. The API is
8
* subject to change.
9
*/
10
11
#ifndef __DAOS_PIPE_H__
12
#define __DAOS_PIPE_H__
13
14
#if defined(__cplusplus)
15
extern
"C"
{
16
#endif
17
18
#include <stdint.h>
19
#include <daos_types.h>
20
#include <daos_obj.h>
21
26
typedef
struct
{
62
d_iov_t
part_type
;
80
d_iov_t
data_type
;
85
uint32_t
num_operands
;
89
daos_key_t
akey
;
93
size_t
num_constants
;
97
d_iov_t *
constant
;
103
size_t
data_offset
;
110
size_t
data_len
;
111
}
daos_filter_part_t
;
112
116
typedef
struct
{
137
d_iov_t
filter_type
;
141
uint32_t
num_parts
;
145
daos_filter_part_t
**
parts
;
146
}
daos_filter_t
;
147
151
typedef
struct
{
155
uint64_t
version
;
159
uint32_t
num_filters
;
163
daos_filter_t
**
filters
;
167
uint32_t
num_aggr_filters
;
171
daos_filter_t
**
aggr_filters
;
172
}
daos_pipeline_t
;
173
177
typedef
struct
{
183
uint64_t
nr_objs
;
189
uint64_t
nr_dkeys
;
194
uint64_t
nr_akeys
;
195
}
daos_pipeline_stats_t
;
196
202
void
203
daos_pipeline_init(
daos_pipeline_t
*pipeline);
204
210
void
211
daos_filter_init(
daos_filter_t
*filter);
212
221
int
222
daos_pipeline_add(
daos_pipeline_t
*pipeline,
daos_filter_t
*filter);
223
232
int
233
daos_filter_add(
daos_filter_t
*filter,
daos_filter_part_t
*part);
234
241
int
242
daos_pipeline_check(
daos_pipeline_t
*pipeline);
243
251
int
252
daos_pipeline_free(
daos_pipeline_t
*pipeline);
253
331
int
332
daos_pipeline_run(
daos_handle_t
coh,
daos_handle_t
oh,
daos_pipeline_t
*pipeline,
daos_handle_t
th,
333
uint64_t flags, daos_key_t *dkey, uint32_t *nr_iods,
daos_iod_t
*iods,
334
daos_anchor_t
*anchor, uint32_t *nr_kds,
daos_key_desc_t
*kds,
335
d_sg_list_t *sgl_keys, d_sg_list_t *sgl_recx, daos_size_t *recx_size,
336
d_sg_list_t *sgl_agg,
daos_pipeline_stats_t
*stats,
daos_event_t
*ev);
337
338
#if defined(__cplusplus)
339
}
340
#endif
341
342
#endif
/* __DAOS_PIPE_H__ */
daos_anchor_t
Definition
daos_types.h:60
daos_event
Definition
daos_types.h:158
daos_filter_part_t
Definition
daos_pipeline.h:26
daos_filter_part_t::constant
d_iov_t * constant
Definition
daos_pipeline.h:97
daos_filter_part_t::akey
daos_key_t akey
Definition
daos_pipeline.h:89
daos_filter_part_t::data_offset
size_t data_offset
Definition
daos_pipeline.h:103
daos_filter_part_t::data_type
d_iov_t data_type
Definition
daos_pipeline.h:80
daos_filter_part_t::num_constants
size_t num_constants
Definition
daos_pipeline.h:93
daos_filter_part_t::data_len
size_t data_len
Definition
daos_pipeline.h:110
daos_filter_part_t::num_operands
uint32_t num_operands
Definition
daos_pipeline.h:85
daos_filter_part_t::part_type
d_iov_t part_type
Definition
daos_pipeline.h:62
daos_filter_t
Definition
daos_pipeline.h:116
daos_filter_t::filter_type
d_iov_t filter_type
Definition
daos_pipeline.h:137
daos_filter_t::num_parts
uint32_t num_parts
Definition
daos_pipeline.h:141
daos_filter_t::parts
daos_filter_part_t ** parts
Definition
daos_pipeline.h:145
daos_handle_t
Definition
daos_types.h:75
daos_iod_t
Definition
daos_obj.h:362
daos_key_desc_t
Definition
daos_obj.h:475
daos_pipeline_stats_t
Definition
daos_pipeline.h:177
daos_pipeline_stats_t::nr_dkeys
uint64_t nr_dkeys
Definition
daos_pipeline.h:189
daos_pipeline_stats_t::nr_objs
uint64_t nr_objs
Definition
daos_pipeline.h:183
daos_pipeline_stats_t::nr_akeys
uint64_t nr_akeys
Definition
daos_pipeline.h:194
daos_pipeline_t
Definition
daos_pipeline.h:151
daos_pipeline_t::aggr_filters
daos_filter_t ** aggr_filters
Definition
daos_pipeline.h:171
daos_pipeline_t::num_aggr_filters
uint32_t num_aggr_filters
Definition
daos_pipeline.h:167
daos_pipeline_t::filters
daos_filter_t ** filters
Definition
daos_pipeline.h:163
daos_pipeline_t::num_filters
uint32_t num_filters
Definition
daos_pipeline.h:159
daos_pipeline_t::version
uint64_t version
Definition
daos_pipeline.h:155
src
include
daos_pipeline.h
Generated by
1.12.0