aboutsummaryrefslogtreecommitdiff
path: root/src/tuberia.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/tuberia.h')
-rw-r--r--src/tuberia.h48
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__