resolver: added basic event emission support.
authorKrisztian Litkey <krisztian.litkey@intel.com>
Tue, 11 Sep 2012 07:22:42 +0000 (10:22 +0300)
committerKrisztian Litkey <krisztian.litkey@intel.com>
Fri, 26 Oct 2012 16:03:49 +0000 (19:03 +0300)
src/Makefile.am
src/resolver/events.c [new file with mode: 0644]
src/resolver/events.h [new file with mode: 0644]

index 03bb4aa..ce030c6 100644 (file)
@@ -283,6 +283,7 @@ libmurphy_resolver_la_REGULAR_SOURCES =                             \
                resolver/target.c                               \
                resolver/target-sorter.c                        \
                resolver/fact.c                                 \
+               resolver/events.c                               \
                $(SIMPLE_SCRIPT_SOURCES)
 
 libmurphy_resolver_la_SOURCES =                        \
diff --git a/src/resolver/events.c b/src/resolver/events.c
new file mode 100644 (file)
index 0000000..6065f6d
--- /dev/null
@@ -0,0 +1,23 @@
+#include <murphy/core/event.h>
+
+#include "resolver.h"
+#include "events.h"
+
+
+
+MRP_REGISTER_EVENTS(events,
+                    { MRP_RESOLVER_EVENT_STARTED, RESOLVER_UPDATE_STARTED },
+                    { MRP_RESOLVER_EVENT_FAILED , RESOLVER_UPDATE_FAILED  },
+                    { MRP_RESOLVER_EVENT_DONE   , RESOLVER_UPDATE_DONE    });
+
+
+int emit_resolver_event(int event, const char *target, int level)
+{
+    uint16_t ttarget = MRP_RESOLVER_TAG_TARGET;
+    uint16_t tlevel  = MRP_RESOLVER_TAG_LEVEL;
+
+    return mrp_emit_event(events[event].id,
+                          MRP_MSG_TAG_STRING(ttarget, target),
+                          MRP_MSG_TAG_UINT32(tlevel , level),
+                          MRP_MSG_END);
+}
diff --git a/src/resolver/events.h b/src/resolver/events.h
new file mode 100644 (file)
index 0000000..abed932
--- /dev/null
@@ -0,0 +1,18 @@
+#ifndef __MURPHY_RESOLVER_EVENTS_H__
+#define __MURPHY_RESOLVER_EVENTS_H__
+
+/*
+ * resolver-related events
+ */
+
+enum {
+    RESOLVER_UPDATE_STARTED = 0,
+    RESOLVER_UPDATE_FAILED,
+    RESOLVER_UPDATE_DONE
+};
+
+
+int emit_resolver_event(int event, const char *target, int level);
+
+
+#endif /* __MURPHY_RESOLVER_EVENTS_H__ */