123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- #include "mem.h"
- #include "every.h"
- Every * every_alloc() {
- return STRUCT_ALLOC(Every);
- }
- Every * every_done(Every * self) {
- if(!self) return NULL;
- return self;
- }
- Every * every_free(Every * self) {
- every_done(self);
- mem_free(self);
- return NULL;
- }
- Every * every_init(Every * self, EveryActs * acts) {
- if(!self) return NULL;
- self->acts = acts;
- if(self->acts->init)
- return self->acts->init(self);
- return self;
- }
- Every * every_new(EveryActs * acts) {
- Every * self = every_alloc();
- return every_init(self, acts);
- }
- void * every_get(Every * self) {
- if(!self) return NULL;
- return self->now;
- }
- void * every_put(Every * self, void * data) {
- if(!self) return NULL;
- if(self->acts->put) {
- return self->acts->put(self, data);
- }
- return NULL;
- }
- Every * every_next(Every * self, void * data) {
- if(self->acts->next) {
- self->acts->next(self);
- return every_get(self);
- }
- return NULL;
- }
- Each * each_init(Each * self, void * on, void * data) {
- if(!self) return NULL;
- self->on = on;
- self->extra = data;
- self->now = NULL;
- self->index = -1;
- return self;
- }
- Each * each_next(Each * self, void * now) {
- if(!self) return NULL;
- self->now = now;
- self->index++;
- return self;
- }
- void * each_now(Each * self) {
- if(!self) return NULL;
- return self->now;
- }
- void * each_on(Each * self) {
- if(!self) return NULL;
- return self->on;
- }
- void * each_extra(Each * self) {
- if(!self) return NULL;
- return self->extra;
- }
- int each_index(Each * self) {
- if(!self) return -1;
- return self->index;
- }
|