libcommon: Introduce notifier
The libsyscommon notifer provides mean that communicate between
different modules. And it works based on publish-subscribe pattern.
If someone wants to listen to an event, it subscribes to notify id
that is defined by event publisher, using subscribe function such as
- syscommon_notifier_subscribe_notify_priority()
- syscommon_notifier_subscribe_notify()
- syscommon_notifier_subscribe_notify_udata_priority()
- syscommon_notifier_subscribe_notify_udata()
Obviously, it is possible to unsubscribe notify via
- syscommon_notifier_unsubscribe_notify()
- syscommon_notifier_unsubscribe_notify_udata()
If someone want publish a notify, it can be done by the functions
such as
- syscommon_notifier_emit_notify()
- syscommon_notifier_emit_notify_once()
See below for a detailed description about libsyscommon notifier.
int syscommon_notifier_subscribe_notify_priority()
- Subscribe notify without user_data callback.
- Higher number of priority will be notified first.
int syscommon_notifier_subscribe_notify()
- Subscribe notify without user_data callback
- Automatically assign default priority of 0.
int syscommon_notifier_unsubscribe_notify()
- Unsubscribe notify callback without user_data.
int syscommon_notifier_subscribe_notify_udata_priority()
- Subscribe notify with user_data callback.
- Provide destroy callback to free user_data on unsubscribing.
- Higher number of priority will be notified first.
- Return notify id and can be used for unsubscribing.
int syscommon_notifier_unsubscribe_notify_udata()
- Subscribe notify with user_data callback
- Provide destroy callback to free user_data on unsubscribing
- Automatically assign default priority of 0.
- Return notify id and can be used for unsubscribing.
int syscommon_notifier_subscribe_notify_udata()
- Unsubscribe notify callback with user_data.
- Invoke destroy function with user_data.
void syscommon_notifier_emit_notify()
- Emit notify.
void syscommon_notifier_emit_notify_once()
- Emit notify only once.
- Notification after the first one is ignored.
Change-Id: I1853f5a51e999c1f20b34c9281becb9cfbdb8a8b
Signed-off-by: Youngjae Cho <y0.cho@samsung.com>
Change-Id: Iff113c8869e27a90f11156181b500d25893387a8