diff options
Diffstat (limited to 'src/tuberia.h')
-rw-r--r-- | src/tuberia.h | 48 |
1 files changed, 18 insertions, 30 deletions
diff --git a/src/tuberia.h b/src/tuberia.h index 048b078..d410bab 100644 --- a/src/tuberia.h +++ b/src/tuberia.h @@ -2,42 +2,30 @@ #define __LIBTUBERIA_H__ typedef struct tube tube; +typedef struct tube_source tube_source; +typedef struct tube_stage tube_stage; typedef void *(*tube_fetch)(void *opaque); typedef void *(*tube_process)(void *element, void *opaque); typedef void (*tube_sink)(void *element, void *opaque); typedef void (*tube_free_element)(void *element); -struct tube_stage { - struct tube_stage *next; - int nqueue; - tube_process *process; - void *opaque; -}; - -struct tube_source { - struct tube_stage *next; - int nqueue; - tube_fetch *fetch; - void *opaque; -}; - -struct tube_source *tube_source_alloc(int nqueue, tube_fetch *fetch, void *opaque); -struct tube_stage *tube_stage_alloc(int nqueue, tube_process *process, void *opaque); -void tube_stage_free(struct tube_stage **stage); -void tube_source_and_stages_free(struct tube_source **source); - -int tube_stage_append(struct tube_source *source, struct tube_stage *stage); - -tube *tube_create(struct tube_source *source, tube_sink *sink, void *opaque); -int tube_start(tube *tube); -int tube_stop(tube *tube); -void tube_free(tube **tube, tube_free_element free_element); - -int tube_inject(tube *tube, int timeout_ms, void *element); -void *tube_retrive(tube *tube, int timeout_ms); -int tube_flush(tube *tube); -int tube_drop(tube *tube, tube_free_element free_element); +tube_source *tube_source_alloc(int nslots, tube_fetch fetch, void *opaque, tube_free_element free_element); +tube_stage *tube_stage_alloc(int nslots, tube_process process, void *opaque, tube_free_element free_element); +void tube_stage_free(tube_stage **stage); +void tube_source_and_stages_free(tube_source **source); + +int tube_stage_append(tube_source *source, tube_stage *stage); + +tube *tube_create(tube_source *source, tube_sink sink, void *opaque); +int tube_start(tube *ctx); +int tube_stop(tube *ctx); +void tube_free(tube **ctx); + +int tube_inject(tube *ctx, int timeout_ms, void *element); +void *tube_retrive(tube *ctx, int timeout_ms); +void tube_flush(tube *ctx); +void tube_drop(tube *ctx); #endif //__LIBTUBERIA_H__ |