afb-trace: Make real timestamps
[src/app-framework-binder.git] / src / afb-trace.c
index 3f77395..ffb0305 100644 (file)
@@ -148,18 +148,8 @@ static void ctxt_error(char **errors, const char *format, ...)
 /* timestamp */
 static struct json_object *timestamp(const struct afb_hookid *hookid)
 {
-#if JSON_C_MAJOR_VERSION > 0 || JSON_C_MINOR_VERSION >= 12
-       char ts[50];
-
-       snprintf(ts, sizeof ts, "%llu.%06lu",
-                       (long long unsigned)hookid->time.tv_sec,
-                       (long unsigned)((hookid->time.tv_nsec + 500) / 1000));
-
-       return json_object_new_double_s(0.0f, ts); /* the real value isn't used */
-#else
        return json_object_new_double((double)hookid->time.tv_sec +
                        (double)hookid->time.tv_nsec * .000000001);
-#endif
 }
 
 /* verbosity level name or NULL */
@@ -717,6 +707,23 @@ static void hook_api_delete_api(void *closure, const struct afb_hookid *hookid,
        hook_api(closure, hookid, export, "delete_api", "{si}",  "status", result);
 }
 
+static void hook_api_on_event_handler_before(void *closure, const struct afb_hookid *hookid, const struct afb_export *export, const char *event, int event_x2, struct json_object *object, const char *pattern)
+{
+       hook_api(closure, hookid, export, "on_event_handler.before",
+               "{ss ss sO?}", "pattern", pattern, "event", event, "data", object);
+}
+
+static void hook_api_on_event_handler_after(void *closure, const struct afb_hookid *hookid, const struct afb_export *export, const char *event, int event_x2, struct json_object *object, const char *pattern)
+{
+       hook_api(closure, hookid, export, "on_event_handler.after",
+               "{ss ss sO?}", "pattern", pattern, "event", event, "data", object);
+}
+
+static void hook_api_settings(void *closure, const struct afb_hookid *hookid, const struct afb_export *export, struct json_object *object)
+{
+       hook_api(closure, hookid, export, "settings", "{sO}", "settings", object);
+}
+
 static struct afb_hook_api_itf hook_api_itf = {
        .hook_api_event_broadcast_before = hook_api_event_broadcast_before,
        .hook_api_event_broadcast_after = hook_api_event_broadcast_after,
@@ -754,6 +761,9 @@ static struct afb_hook_api_itf hook_api_itf = {
        .hook_api_class_provide = hook_api_class_provide,
        .hook_api_class_require = hook_api_class_require,
        .hook_api_delete_api = hook_api_delete_api,
+       .hook_api_on_event_handler_before = hook_api_on_event_handler_before,
+       .hook_api_on_event_handler_after = hook_api_on_event_handler_after,
+       .hook_api_settings = hook_api_settings,
 };
 
 /*******************************************************************************/