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)
15extern "C" {
16#endif
17
18#include <stdint.h>
19#include <daos_types.h>
20#include <daos_obj.h>
21
26typedef struct {
62 d_iov_t part_type;
80 d_iov_t data_type;
85 uint32_t num_operands;
89 daos_key_t akey;
97 d_iov_t *constant;
110 size_t data_len;
112
116typedef struct {
137 d_iov_t filter_type;
141 uint32_t num_parts;
147
173
177typedef struct {
183 uint64_t nr_objs;
189 uint64_t nr_dkeys;
194 uint64_t nr_akeys;
196
202void
203daos_pipeline_init(daos_pipeline_t *pipeline);
204
210void
211daos_filter_init(daos_filter_t *filter);
212
221int
222daos_pipeline_add(daos_pipeline_t *pipeline, daos_filter_t *filter);
223
232int
233daos_filter_add(daos_filter_t *filter, daos_filter_part_t *part);
234
241int
242daos_pipeline_check(daos_pipeline_t *pipeline);
243
251int
252daos_pipeline_free(daos_pipeline_t *pipeline);
253
331int
332daos_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__ */
d_iov_t filter_type
uint32_t num_parts
daos_filter_part_t ** parts
daos_filter_t ** aggr_filters
uint32_t num_aggr_filters
daos_filter_t ** filters