TODO: document the cycle_event interface.
SIM_INTERFACE(cycle_event) {
cycles_t (*cycles)(conf_object_t *NOTNULL obj);
void (*post)(conf_object_t *NOTNULL obj,
const event_class_t *NOTNULL evclass,
conf_object_t *NOTNULL ev_obj,
cycles_t cycles,
lang_void *param);
void (*cancel)(conf_object_t *NOTNULL obj,
const event_class_t *NOTNULL evclass,
conf_object_t *NOTNULL ev_obj,
int (*pred)(lang_void *data, lang_void *match_data),
lang_void *match_data);
cycles_t (*lookup)(conf_object_t *NOTNULL obj,
const event_class_t *NOTNULL evclass,
conf_object_t *NOTNULL ev_obj,
int (*pred)(lang_void *data, lang_void *match_data),
lang_void *match_data);
attr_value_t (*events)(conf_object_t *NOTNULL obj);
};
#define CYCLE_EVENT_INTERFACE "cycle_event"