struct ul_evptrig_t { struct ul_evptrig_data_t * impl_data; ul_evpbase_t * base; ul_evpoll_cb_t cb; };
pointer to implementation data set by base in ul_evptrig_init
pointer to the base which event is member of
pointer to user callback function
The event trigger is basic element of whole library. One or more instances
of &ul_evptrig_t structure are typically contained by some user
data structure holding state for given communication object.
Structure is initiated and assigned to selected event poll base by
ul_evptrig_init
. From this point it s associated to base until
ul_evptrig_done
is called. If poll base is destroyed / ul_evpoll_destroy
called before ul_evptrig_done
, UL_EVP_DONE
event is delivered to the
assigned callback function. It should call ul_evptrig_done
in such case.
The trigger is setup to accept selected events, functions ul_evptrig_set_fd
,
ul_evptrig_set_callback
, ul_evptrig_set_time
/ul_evptrig_set_timeout
and then it is marked active by ul_evptrig_arm
or ul_evptrig_arm_once
call. When event occurs, the callback cb
is activated with set of active
events. The argument of evptrig
is pointer to corresponding &ul_evptrig_t
structure. Use of UL_CONTAINEROF
is expected to obtain pointer
communication object data structure containing activated event trigger.
Monitoring of given event can be (temporarily) disabled by
ul_evptrig_disarm
.