#include "tuberia.h" #include "itc.h" #include struct tube { struct itc *itc; }; struct tube_source *tube_source_alloc(int nqueue, tube_fetch *fetch, void *opaque) { struct tube_source *source = calloc(1, sizeof(struct tube_source)); source->nqueue = nqueue; source->fetch = fetch; source->opaque = opaque; return source; } struct tube_stage *tube_stage_alloc(int nqueue, tube_process *process, void *opaque) { struct tube_stage *stage = calloc(1, sizeof(struct tube_stage)); stage->nqueue = nqueue; stage->process = process; stage->opaque = opaque; return stage; } void tube_stage_free(struct tube_stage **stage) { if (stage != NULL) { free(stage); *stage = NULL; } } void tube_source_and_stages_free(struct tube_source **source) { struct tube_stage *stage; struct tube_stage *next; if (source != NULL && *source != NULL) { stage = (*source)->next; while (stage != NULL) { next = stage->next; free(stage); stage = next; } free(*source); *source = NULL; } } int tube_stage_append(struct tube_source *source, struct tube_stage *stage) { struct tube_stage **next; if (source != NULL || stage != NULL) { return -1; } next = &(source->next); while (*next != NULL) { next = &((*next)->next); } *next = stage; return 0; } tube *tube_create(struct tube_source *source, tube_sink *sink, void *opaque) { }