summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 6997bca)
raw | patch | inline | side by side (parent: 6997bca)
author | Florian Forster <ff@octo.it> | |
Mon, 12 Jul 2010 16:55:07 +0000 (18:55 +0200) | ||
committer | Florian Forster <octo@leeloo.lan.home.verplant.org> | |
Mon, 12 Jul 2010 16:55:07 +0000 (18:55 +0200) |
src/graph_ident.c | patch | blob | history | |
src/graph_ident.h | patch | blob | history |
diff --git a/src/graph_ident.c b/src/graph_ident.c
index 7dda849e0794bb01f9e19c3d75a58529126a9e80..119571f172487170ad844f4445b6160615325e9b 100644 (file)
--- a/src/graph_ident.c
+++ b/src/graph_ident.c
return (1);
} /* }}} _Bool ident_matches */
+_Bool ident_intersect (const graph_ident_t *s0, /* {{{ */
+ const graph_ident_t *s1)
+{
+#define INTERSECT_PART(p) do { \
+ if (!IS_ANY (s0->p) && !IS_ALL (s0->p) \
+ && !IS_ANY (s1->p) && !IS_ALL (s1->p) \
+ && (strcmp (s0->p, s1->p) != 0)) \
+ return (0); \
+} while (0)
+
+ INTERSECT_PART (host);
+ INTERSECT_PART (plugin);
+ INTERSECT_PART (plugin_instance);
+ INTERSECT_PART (type);
+ INTERSECT_PART (type_instance);
+
+#undef INTERSECT_PART
+
+ return (1);
+} /* }}} _Bool ident_intersect */
+
char *ident_to_string (const graph_ident_t *ident) /* {{{ */
{
char buffer[PATH_MAX];
diff --git a/src/graph_ident.h b/src/graph_ident.h
index 4eced2de4d074261f60e0fd8ac6d7f48010742a7..e433fa7f8e7f0978614a7512d9e474cdc9b8ec5b 100644 (file)
--- a/src/graph_ident.h
+++ b/src/graph_ident.h
_Bool ident_matches (const graph_ident_t *selector,
const graph_ident_t *ident);
+/* The "ident_intersect" function takes two selectors and returns true if a
+ * file may apply to both selectors. If the selectors contradict one another,
+ * for example one issuing "plugin = cpu" and the other "plugin = memory",
+ * then false is returned. */
+_Bool ident_intersect (const graph_ident_t *s0, const graph_ident_t *s1);
+
char *ident_to_string (const graph_ident_t *ident);
char *ident_to_file (const graph_ident_t *ident);
char *ident_to_json (const graph_ident_t *ident);