src/graph_ident.[ch]: Implement "ident_get_field".
authorFlorian Forster <ff@octo.it>
Wed, 23 Jun 2010 06:37:09 +0000 (08:37 +0200)
committerFlorian Forster <octo@verplant.org>
Wed, 23 Jun 2010 06:37:09 +0000 (08:37 +0200)
src/graph_ident.c
src/graph_ident.h

index 905e73d..c3d4e54 100644 (file)
@@ -242,6 +242,26 @@ const char *ident_get_type_instance (graph_ident_t *ident) /* {{{ */
 
   return (ident->type_instance);
 } /* }}} char *ident_get_type_instance */
+
+const char *ident_get_field (graph_ident_t *ident, /* {{{ */
+    graph_ident_field_t field)
+{
+  if ((ident == NULL) || (field >= _GIF_LAST))
+    return (NULL);
+
+  if (field == GIF_HOST)
+    return (ident->host);
+  else if (field == GIF_PLUGIN)
+    return (ident->plugin);
+  else if (field == GIF_PLUGIN_INSTANCE)
+    return (ident->plugin_instance);
+  else if (field == GIF_TYPE)
+    return (ident->type);
+  else if (field == GIF_TYPE_INSTANCE)
+    return (ident->type_instance);
+  else
+    return (NULL); /* never reached */
+} /* }}} const char *ident_get_field */
 /* }}} ident_get_* methods */
 
 /* ident_set_* methods {{{ */
index e2f2ba6..e4a12a0 100644 (file)
 #define IS_ANY(str) (((str) != NULL) && (strcasecmp (ANY_TOKEN, (str)) == 0))
 #define IS_ALL(str) (((str) != NULL) && (strcasecmp (ALL_TOKEN, (str)) == 0))
 
+enum graph_ident_field_e
+{
+  GIF_HOST,
+  GIF_PLUGIN,
+  GIF_PLUGIN_INSTANCE,
+  GIF_TYPE,
+  GIF_TYPE_INSTANCE,
+  _GIF_LAST
+};
+typedef enum graph_ident_field_e graph_ident_field_t;
+
 graph_ident_t *ident_create (const char *host,
     const char *plugin, const char *plugin_instance,
     const char *type, const char *type_instance);
@@ -27,6 +38,8 @@ const char *ident_get_plugin (graph_ident_t *ident);
 const char *ident_get_plugin_instance (graph_ident_t *ident);
 const char *ident_get_type (graph_ident_t *ident);
 const char *ident_get_type_instance (graph_ident_t *ident);
+const char *ident_get_field (graph_ident_t *ident,
+    graph_ident_field_t field);
 
 int ident_set_host (graph_ident_t *ident, const char *host);
 int ident_set_plugin (graph_ident_t *ident, const char *plugin);