13 graph_ident_t *select;
25 graph_def_t *def_create (graph_config_t *cfg, graph_ident_t *ident) /* {{{ */
27 graph_ident_t *selector;
30 selector = gl_graph_get_selector (cfg);
34 ret = malloc (sizeof (*ret));
37 ident_destroy (selector);
40 memset (ret, 0, sizeof (*ret));
43 ret->select = ident_copy_with_selector (selector, ident,
44 IDENT_FLAG_REPLACE_ALL);
45 if (ret->select == NULL)
47 ident_destroy (selector);
52 ident_destroy (selector);
54 }; /* }}} graph_def_t *def_create */
56 void def_destroy (graph_def_t *def) /* {{{ */
65 ident_destroy (def->select);
70 } /* }}} void def_destroy */
72 int def_append (graph_def_t *head, graph_def_t *def) /* {{{ */
76 if ((head == NULL) || (def == NULL))
80 while (ptr->next != NULL)
86 } /* }}} int def_append */
88 graph_def_t *def_search (graph_def_t *head, graph_ident_t *ident) /* {{{ */
92 if ((head == NULL) || (ident == NULL))
95 for (ptr = head; ptr != NULL; ptr = ptr->next)
96 if (ident_matches (ptr->select, ident))
100 } /* }}} graph_def_t *def_search */
102 int def_get_rrdargs (graph_def_t *def, graph_ident_t *ident, /* {{{ */
111 if ((def == NULL) || (ident == NULL) || (args == NULL))
114 file = ident_to_file (ident);
117 DEBUG ("gl_ident_get_rrdargs: ident_to_file returned NULL.\n");
121 DEBUG ("gl_ident_get_rrdargs: file = %s;\n", file);
123 status = ds_list_from_rrd_file (file, &dses_num, &dses);
130 for (i = 0; i < dses_num; i++)
134 DEBUG ("gl_ident_get_rrdargs: ds[%lu] = %s;\n", (unsigned long) i, dses[i]);
136 index = array_argc (args);
139 array_append_format (args, "DEF:def_%04i_min=%s:%s:MIN",
140 index, file, dses[i]);
141 array_append_format (args, "DEF:def_%04i_avg=%s:%s:AVERAGE",
142 index, file, dses[i]);
143 array_append_format (args, "DEF:def_%04i_max=%s:%s:MAX",
144 index, file, dses[i]);
146 array_append_format (args, "VDEF:vdef_%04i_min=def_%04i_min,MINIMUM",
148 array_append_format (args, "VDEF:vdef_%04i_avg=def_%04i_avg,AVERAGE",
150 array_append_format (args, "VDEF:vdef_%04i_max=def_%04i_max,MAXIMUM",
152 array_append_format (args, "VDEF:vdef_%04i_lst=def_%04i_avg,LAST",
156 array_append_format (args, "LINE1:def_%04i_avg#%06"PRIx32":%s",
157 index, get_random_color (), dses[i]);
158 array_append_format (args, "GPRINT:vdef_%04i_min:%%lg min,", index);
159 array_append_format (args, "GPRINT:vdef_%04i_avg:%%lg avg,", index);
160 array_append_format (args, "GPRINT:vdef_%04i_max:%%lg max,", index);
161 array_append_format (args, "GPRINT:vdef_%04i_lst:%%lg last\\l", index);
170 } /* }}} int def_get_rrdargs */
172 /* vim: set sw=2 sts=2 et fdm=marker : */