+/**
+ * collection4 - graph_ident.c
+ * Copyright (C) 2010 Florian octo Forster
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ *
+ * Authors:
+ * Florian octo Forster <ff at octo.it>
+ **/
+
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
} /* }}} void ident_destroy */
/* ident_get_* methods {{{ */
-const char *ident_get_host (graph_ident_t *ident) /* {{{ */
+const char *ident_get_host (const graph_ident_t *ident) /* {{{ */
{
if (ident == NULL)
return (NULL);
return (ident->host);
} /* }}} char *ident_get_host */
-const char *ident_get_plugin (graph_ident_t *ident) /* {{{ */
+const char *ident_get_plugin (const graph_ident_t *ident) /* {{{ */
{
if (ident == NULL)
return (NULL);
return (ident->plugin);
} /* }}} char *ident_get_plugin */
-const char *ident_get_plugin_instance (graph_ident_t *ident) /* {{{ */
+const char *ident_get_plugin_instance (const graph_ident_t *ident) /* {{{ */
{
if (ident == NULL)
return (NULL);
return (ident->plugin_instance);
} /* }}} char *ident_get_plugin_instance */
-const char *ident_get_type (graph_ident_t *ident) /* {{{ */
+const char *ident_get_type (const graph_ident_t *ident) /* {{{ */
{
if (ident == NULL)
return (NULL);
return (ident->type);
} /* }}} char *ident_get_type */
-const char *ident_get_type_instance (graph_ident_t *ident) /* {{{ */
+const char *ident_get_type_instance (const graph_ident_t *ident) /* {{{ */
{
if (ident == NULL)
return (NULL);
return (ident->type_instance);
} /* }}} char *ident_get_type_instance */
+
+const char *ident_get_field (const 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 {{{ */
_Bool ident_matches (const graph_ident_t *selector, /* {{{ */
const graph_ident_t *ident)
{
- if ((selector == NULL) && (ident == NULL))
+ if ((selector == NULL) || (ident == NULL))
return (0);
- else if (selector == NULL)
- return (-1);
- else if (ident == NULL)
- return (1);
if (!part_matches (selector->host, ident->host))
return (0);