~vcs-imports/rrdtool/trunk

« back to all changes in this revision

Viewing changes to program/src/rrd_graph.h

  • Committer: oetiker
  • Date: 2012-03-06 10:13:46 UTC
  • Revision ID: svn-v4:a5681a0c-68f1-0310-ab6d-d61299d08faa:trunk:2283
introducing the new key=value parser for graph command arguments ... work in progress - Martin Sperl

Show diffs side-by-side

added added

removed removed

Lines of Context:
60
60
enum gf_en { GF_PRINT = 0, GF_GPRINT, GF_COMMENT, GF_HRULE, GF_VRULE, GF_LINE,
61
61
    GF_AREA,GF_GRAD, GF_STACK, GF_TICK, GF_TEXTALIGN,
62
62
    GF_DEF, GF_CDEF, GF_VDEF, GF_SHIFT,
63
 
    GF_XPORT
 
63
    GF_XPORT, GF_XAXIS, GF_YAXIS
64
64
};
65
65
 
66
66
enum txa_en { TXA_LEFT = 0, TXA_RIGHT, TXA_CENTER, TXA_JUSTIFIED };
110
110
    double    alpha;
111
111
} gfx_color_t;
112
112
 
 
113
typedef struct keyvalue_t {
 
114
  char* key;
 
115
  char* value;
 
116
  int pos;
 
117
  int flag;
 
118
} keyvalue_t;
 
119
 
 
120
typedef struct keyint_t {
 
121
  char*key;
 
122
  int value;
 
123
} keyint_t;
 
124
 
 
125
typedef struct parsedargs_t {
 
126
  char *arg; /* copy of the parsed string - rewritten*/
 
127
  const char *arg_orig; /* original argument */
 
128
  int kv_cnt; /* number of key/value arguments */
 
129
  keyvalue_t *kv_args; /* key value arguments */
 
130
} parsedargs_t;
 
131
void initParsedArguments(parsedargs_t*);
 
132
void freeParsedArguments(parsedargs_t*);
 
133
int addToArguments(parsedargs_t*, char*, char*, int);
 
134
int parseArguments(const char*, parsedargs_t*);
 
135
void dumpKeyValue(char* ,keyvalue_t*);
 
136
void dumpArguments(parsedargs_t*);
 
137
char* getKeyValueArgument(const char*, int, parsedargs_t*);
 
138
int getMappedKeyValueArgument(const char*,int, parsedargs_t*,
 
139
                              int*,keyint_t**);
 
140
int getLong(const char*,long *,char**,int);
 
141
int getDouble(const char*,double *,char**);
 
142
keyvalue_t* getFirstUnusedArgument(int, parsedargs_t*);
 
143
char* checkUnusedValues(parsedargs_t*);
113
144
 
114
145
typedef struct text_prop_t {
115
146
    double    size;
161
192
#define FMT_LEG_LEN 2000
162
193
#endif
163
194
 
 
195
# define MAX_AXIS 4
 
196
 
164
197
typedef struct graph_desc_t {
165
198
    enum gf_en gf;      /* graphing function */
166
199
    int       stack;    /* boolean */
183
216
    time_t    xrule;    /* time for x rule line and for VDEF */
184
217
    vdef_t    vf;       /* instruction for VDEF function */
185
218
    rpnp_t   *rpnp;     /* instructions for CDEF function */
 
219
    char     *rpn;      /* string representation of rpn */
186
220
 
187
221
    /* SHIFT implementation */
188
222
    int       shidx;    /* gdes reference for offset (-1 --> constant) */
208
242
    double    offset;   /* dash offset along the line */
209
243
 
210
244
    enum txa_en txtalign;   /* change default alignment strategy for text */
 
245
 
 
246
    /* the axis to use for this graph in x and y*/
 
247
    int xaxisidx;
 
248
    int yaxisidx;
211
249
} graph_desc_t;
212
250
 
213
251
typedef struct image_desc_t {