µEvLoop
A fast and lightweight event loop aimed at embedded platforms in C99.
pipeline.h
Go to the documentation of this file.
1 
7 #ifndef UEL_PIPELINE_H
8 #define UEL_PIPELINE_H
9 
11 #include <stdlib.h>
13 
14 #include "uevloop/utils/closure.h"
15 
22 typedef struct uel_pipeline uel_pipeline_t;
23 struct uel_pipeline{
25  uel_closure_t *closures;
27  size_t count;
28 };
29 
36 void uel_pipeline_init(uel_pipeline_t *pipeline, uel_closure_t *closures, size_t count);
37 
48 void *uel_pipeline_apply(uel_pipeline_t *pipeline, void *params);
49 
59 #define UEL_PIPELINE_DECLARE(id, ...) \
60  uel_closure_t id##_pipeline_closures[] = {__VA_ARGS__}; \
61  uel_pipeline_t id##_pipeline; \
62  uel_pipeline_init(&id##_pipeline, id##_pipeline_closures, \
63  sizeof(id##_pipeline_closures) / sizeof(uel_closure_t));
64 
65 #endif /* end of include guard: UEL_PIPELINE_H */
uel_pipeline
A pipeline is an ordered closure list to be run in sequence.
Definition: pipeline.h:23
closure.h
Defines closures, objects that bind functions to creating and calling contexts.
uel_pipeline::count
size_t count
The number of closures in the array.
Definition: pipeline.h:27
uel_pipeline_init
void uel_pipeline_init(uel_pipeline_t *pipeline, uel_closure_t *closures, size_t count)
Initialises a new pipeline.
uel_pipeline::closures
uel_closure_t * closures
A reference to an array of closures to be run.
Definition: pipeline.h:25
uel_pipeline_apply
void * uel_pipeline_apply(uel_pipeline_t *pipeline, void *params)
Applies a pipeline to some input.