From: Florian Forster Date: Wed, 23 Jun 2010 06:37:09 +0000 (+0200) Subject: src/graph_ident.[ch]: Implement "ident_get_field". X-Git-Tag: v4.0.0~198^2~8 X-Git-Url: https://git.octo.it/?p=collection4.git;a=commitdiff_plain;h=89bc58e9605fef04667f0e0b9004863b4f46d304 src/graph_ident.[ch]: Implement "ident_get_field". --- diff --git a/src/graph_ident.c b/src/graph_ident.c index 905e73d..c3d4e54 100644 --- a/src/graph_ident.c +++ b/src/graph_ident.c @@ -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 {{{ */ diff --git a/src/graph_ident.h b/src/graph_ident.h index e2f2ba6..e4a12a0 100644 --- a/src/graph_ident.h +++ b/src/graph_ident.h @@ -10,6 +10,17 @@ #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);