1 #ifndef HAWKTRACER_TIMELINE_H     2 #define HAWKTRACER_TIMELINE_H    15 #define HT_TIMELINE_FEATURE(timeline, feature_id, feature_type) \    16     ((feature_type*)ht_timeline_get_feature(timeline, feature_id))    19 #define HT_TIMELINE_MAX_FEATURES 32    28                                        const char* listeners,
   147 #define HT_TIMELINE_PUSH_EVENT(TIMELINE, EVENT_TYPE, ...) \   148     HT_TIMELINE_PUSH_EVENT_PEDANTIC(TIMELINE, EVENT_TYPE, ht_base_event, __VA_ARGS__)   174 #define HT_TIMELINE_PUSH_EVENT_PEDANTIC(TIMELINE, EVENT_TYPE, ...) \   176         HT_Event ht_base_event = { \   177             ht_##EVENT_TYPE##_get_event_klass_instance(), \   178             ht_monotonic_clock_get_timestamp(), \   179             ht_event_id_provider_next(ht_timeline_get_id_provider(TIMELINE)) \   181         EVENT_TYPE ev = {__VA_ARGS__}; \   182         ht_timeline_push_event(TIMELINE, HT_EVENT(&ev)); \ typedefHT_DECLS_BEGIN struct _HT_Feature HT_Feature
Definition: feature.h:13
HT_API HT_Timeline * ht_timeline_create(size_t buffer_capacity, HT_Boolean thread_safe, HT_Boolean serialize_events, const char *listeners, HT_ErrorCode *out_err)
HT_API void ht_timeline_flush(HT_Timeline *timeline)
Transfers all the events from internal buffer to listeners. 
#define HT_API
Defines a directive for exporting/importing symbols from DLL. 
Definition: macros.h:76
#define HT_DECLS_END
Defines an end of C linkage block. 
Definition: macros.h:17
HT_API HT_ErrorCode ht_timeline_register_listener(HT_Timeline *timeline, HT_TimelineListenerCallback callback, void *user_data)
Registers new listener to a timeline. 
typedefHT_DECLS_BEGIN struct _HT_Timeline HT_Timeline
Definition: timeline.h:23
HT_ErrorCode
Defines list of possible errors returned by library functions. 
Definition: base_types.h:48
int HT_Boolean
A standard boolean type, possible values: HT_TRUE, HT_FALSE. 
Definition: base_types.h:20
HT_DECLS_BEGIN typedef void(* HT_TimelineListenerCallback)(TEventPtr events, size_t buffer_size, HT_Boolean serialized, void *user_data)
A callback for the timeline listener. 
Definition: timeline_listener.h:20
HT_API void ht_timeline_push_event(HT_Timeline *timeline, HT_Event *event)
Pushes an event to a timeline. 
HT_API HT_EventIdProvider * ht_timeline_get_id_provider(HT_Timeline *timeline)
void(* HT_DestroyCallback)(void *data)
A type of function called to destroy data element. 
Definition: base_types.h:34
HT_API void ht_timeline_destroy(HT_Timeline *timeline)
Destroys a timeline. 
typedefHT_DECLS_BEGIN struct _HT_EventIdProvider HT_EventIdProvider
HT_EventIdProvider is a sequence number generator. 
Definition: event_id_provider.h:13
HT_API HT_Feature * ht_timeline_get_feature(HT_Timeline *timeline, HT_FeatureKlass *feature_klass)
Gets the feature object of a specific class from the pipeline. 
#define HT_DECLS_BEGIN
Defines a beginning of C linkage block. 
Definition: macros.h:16
HT_API HT_ErrorCode ht_timeline_set_feature(HT_Timeline *timeline, HT_Feature *feature)
Enables a specific feature in the timeline. 
HT_API HT_ErrorCode ht_timeline_register_listener_full(HT_Timeline *timeline, HT_TimelineListenerCallback callback, void *user_data, HT_DestroyCallback destroy_callback)
Registers new listener to a timeline. 
HT_DECLS_BEGIN HT_Event
Definition: core_events.h:11
The struct represents a feature class. 
Definition: feature.h:28
HT_API void ht_timeline_init_event(HT_Timeline *timeline, HT_Event *event)
Initializes event according to timeline's parameters. 
HT_API void ht_timeline_unregister_all_listeners(HT_Timeline *timeline)
Removes all the listeners from a timeline.