X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Faction_show_instance.c;h=c4ca6cde60a0273387157c4ebc858dd6f5e96726;hb=9740ba29aa604e3cc2e75d37b8af3ba5fcb571c9;hp=1f6475ffde39de9ddee0a685dbcd2c5611fe2c2e;hpb=06651124c58362741dee867142f0a42b6ccc091d;p=collection4.git diff --git a/src/action_show_instance.c b/src/action_show_instance.c index 1f6475f..c4ca6cd 100644 --- a/src/action_show_instance.c +++ b/src/action_show_instance.c @@ -1,3 +1,26 @@ +/** + * collection4 - action_show_instance.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 + **/ + #include #include #include @@ -23,10 +46,13 @@ return (0); \ } while (0) +#define MAX_SHOW_GRAPHS 10 + struct show_graph_data_s { graph_config_t *cfg; graph_instance_t *inst; + int graph_count; }; typedef struct show_graph_data_s show_graph_data_t; @@ -54,20 +80,21 @@ static void show_breadcrump_field (const char *str, /* {{{ */ } } /* }}} void show_breadcrump_field */ -static int show_breadcrump (show_graph_data_t *data) /* {{{ */ +static int show_breadcrump (graph_config_t *cfg, /* {{{ */ + graph_instance_t *inst) { graph_ident_t *ident; char *prefix; - if (data->inst != NULL) + if (inst != NULL) { prefix = "Instance"; - ident = inst_get_selector (data->inst); + ident = inst_get_selector (inst); } else { prefix = "Graph"; - ident = graph_get_selector (data->cfg); + ident = graph_get_selector (cfg); } printf ("
%s: "", prefix); @@ -82,6 +109,7 @@ static int show_breadcrump (show_graph_data_t *data) /* {{{ */ show_breadcrump_field (ident_get_type_instance (ident), "type_instance"); printf (""
\n"); + ident_destroy (ident); return (0); } /* }}} int show_breadcrump */ @@ -171,8 +199,9 @@ static int show_instance_list (void *user_data) /* {{{ */ static int show_instance_cb (graph_config_t *cfg, /* {{{ */ graph_instance_t *inst, - __attribute__((unused)) void *user_data) + void *user_data) { + show_graph_data_t *data = user_data; char title[128]; char descr[128]; char params[1024]; @@ -190,9 +219,19 @@ static int show_instance_cb (graph_config_t *cfg, /* {{{ */ html_escape_buffer (params, sizeof (params)); printf ("

Instance "%s"

\n", descr); - printf ("
\n", - script_name (), params, title, descr); + + show_breadcrump (cfg, inst); + + if (data->graph_count < MAX_SHOW_GRAPHS) + printf ("
\n", + script_name (), params, title, descr); + else + printf ("Show graph " + ""%s / %s"\n", + script_name (), params, title, descr); + + data->graph_count++; return (0); } /* }}} int show_instance_cb */ @@ -204,7 +243,7 @@ static int show_instance (void *user_data) /* {{{ */ fprintf (stderr, "show_instance: Calling inst_get_all_selected()\n"); status = inst_get_all_selected (data->cfg, - /* callback = */ show_instance_cb, /* user data = */ NULL); + /* callback = */ show_instance_cb, /* user data = */ data); if (status != 0) fprintf (stderr, "show_instance: inst_get_all_selected failed " "with status %i\n", status); @@ -220,6 +259,7 @@ int action_show_instance (void) /* {{{ */ char tmp[128]; char title[128]; + memset (&pg_data, 0, sizeof (pg_data)); pg_data.cfg = gl_graph_get_selected (); if (pg_data.cfg == NULL) OUTPUT_ERROR ("gl_graph_get_selected () failed.\n");