X-Git-Url: http://git.archive.openwrt.org/?p=project%2Flibubox.git;a=blobdiff_plain;f=ustream.h;h=d9f98b78e86b1a7c22f6a8d918060422e59e1b3f;hp=29f370fb705e284b24340138b8543f40aa1815b3;hb=dc69ce4799deb53797266d55311871b9c0062066;hpb=0e51f714d107584668438742c4fb1c631c629061 diff --git a/ustream.h b/ustream.h index 29f370f..d9f98b7 100644 --- a/ustream.h +++ b/ustream.h @@ -101,6 +101,14 @@ struct ustream { void (*set_read_blocked)(struct ustream *s); /* + * poll: (optional) + * defined by the upstream implementation, called to request polling for + * available data. + * returns true if data was fetched. + */ + bool (*poll)(struct ustream *s); + + /* * ustream user should set this if the input stream is expected * to contain string data. the core will keep all data 0-terminated. */ @@ -182,4 +190,12 @@ static inline void ustream_state_change(struct ustream *s) uloop_timeout_set(&s->state_change, 0); } +static inline bool ustream_poll(struct ustream *s) +{ + if (!s->poll) + return false; + + return s->poll(s); +} + #endif