struct ul_evptrig_t

Name

struct ul_evptrig_t --  event trigger public structure

Synopsis


struct ul_evptrig_t {
  struct ul_evptrig_data_t * impl_data;
  ul_evpbase_t * base;
  ul_evpoll_cb_t cb;
};  

Members

impl_data

pointer to implementation data set by base in ul_evptrig_init

base

pointer to the base which event is member of

cb

pointer to user callback function

Description

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.