~ubuntu-branches/ubuntu/saucy/rrdtool/saucy-proposed

« back to all changes in this revision

Viewing changes to bindings/tcl/tclrrd.c

  • Committer: Bazaar Package Importer
  • Author(s): Clint Byrum
  • Date: 2010-07-22 08:07:01 UTC
  • mfrom: (1.2.8 upstream) (3.1.6 sid)
  • Revision ID: james.westby@ubuntu.com-20100722080701-k46mgdfz6euxwqsm
Tags: 1.4.3-1ubuntu1
* Merge from debian unstable, Remaining changes:
  - debian/control: Don't build against ruby1.9 as we don't want
    it in main.
* require libdbi >= 0.8.3 to prevent aborts when using dbi datasources

Show diffs side-by-side

added added

removed removed

Lines of Context:
8
8
 * See the file "COPYING" for information on usage and redistribution
9
9
 * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
10
10
 *
11
 
 * $Id: tclrrd.c 1405 2008-06-08 15:55:09Z oetiker $
 
11
 * $Id: tclrrd.c 1854 2009-06-07 14:46:21Z oetiker $
12
12
 */
13
13
 
14
14
 
97
97
 
98
98
/* Thread-safe version */
99
99
static int Rrd_Create(
100
 
    ClientData clientData,
 
100
    ClientData __attribute__((unused)) clientData,
101
101
    Tcl_Interp *interp,
102
102
    int argc,
103
103
    CONST84 char *argv[])
186
186
        return TCL_ERROR;
187
187
    }
188
188
 
189
 
    rrd_create_r(argv2[1], pdp_step, last_up, argc - 2, argv2 + 2);
 
189
    rrd_create_r(argv2[1], pdp_step, last_up, argc - 2,
 
190
                 (const char **)argv2 + 2);
190
191
 
191
192
    getopt_cleanup(argc, argv2);
192
193
 
204
205
 
205
206
/* Thread-safe version */
206
207
static int Rrd_Dump(
207
 
    ClientData clientData,
 
208
    ClientData __attribute__((unused)) clientData,
208
209
    Tcl_Interp *interp,
209
210
    int argc,
210
211
    CONST84 char *argv[])
229
230
    return TCL_OK;
230
231
}
231
232
 
 
233
/* Thread-safe version */
 
234
static int Rrd_Flushcached(
 
235
    ClientData __attribute__((unused)) clientData,
 
236
    Tcl_Interp *interp,
 
237
    int argc,
 
238
    CONST84 char *argv[])
 
239
{
 
240
    if (argc < 2) {
 
241
        Tcl_AppendResult(interp, "RRD Error: needs rrd filename",
 
242
                         (char *) NULL);
 
243
        return TCL_ERROR;
 
244
    }
 
245
 
 
246
    rrd_flushcached(argc, (char**)argv);
 
247
 
 
248
    if (rrd_test_error()) {
 
249
        Tcl_AppendResult(interp, "RRD Error: ",
 
250
                         rrd_get_error(), (char *) NULL);
 
251
        rrd_clear_error();
 
252
        return TCL_ERROR;
 
253
    }
 
254
 
 
255
    return TCL_OK;
 
256
}
232
257
 
233
258
 
234
259
/* Thread-safe version */
235
260
static int Rrd_Last(
236
 
    ClientData clientData,
 
261
    ClientData __attribute__((unused)) clientData,
237
262
    Tcl_Interp *interp,
238
263
    int argc,
239
264
    CONST84 char *argv[])
264
289
 
265
290
/* Thread-safe version */
266
291
static int Rrd_Update(
267
 
    ClientData clientData,
 
292
    ClientData __attribute__((unused)) clientData,
268
293
    Tcl_Interp *interp,
269
294
    int argc,
270
295
    CONST84 char *argv[])
319
344
        return TCL_ERROR;
320
345
    }
321
346
 
322
 
    rrd_update_r(argv2[1], template, argc - 2, argv2 + 2);
 
347
    rrd_update_r(argv2[1], template, argc - 2, (const char **)argv2 + 2);
323
348
 
324
349
    if (template != NULL) {
325
350
        free(template);
337
362
}
338
363
 
339
364
static int Rrd_Lastupdate(
340
 
    ClientData clientData,
 
365
    ClientData __attribute__((unused)) clientData,
341
366
    Tcl_Interp *interp,
342
367
    int argc,
343
368
    CONST84 char *argv[])
350
375
    Tcl_Obj  *listPtr;
351
376
    unsigned long ds_cnt, i;
352
377
 
 
378
    /* TODO: support for rrdcached */
 
379
    if (argc != 2) {
 
380
        Tcl_AppendResult(interp, "RRD Error: needs a single rrd filename",
 
381
                         (char *) NULL);
 
382
        return TCL_ERROR;
 
383
    }
 
384
 
353
385
    argv2 = getopt_init(argc, argv);
354
 
    if (rrd_lastupdate(argc - 1, argv2, &last_update,
 
386
    if (rrd_lastupdate_r(argv2[1], &last_update,
355
387
                       &ds_cnt, &ds_namv, &last_ds) == 0) {
356
388
        listPtr = Tcl_GetObjResult(interp);
357
389
        for (i = 0; i < ds_cnt; i++) {
379
411
}
380
412
 
381
413
static int Rrd_Fetch(
382
 
    ClientData clientData,
 
414
    ClientData __attribute__((unused)) clientData,
383
415
    Tcl_Interp *interp,
384
416
    int argc,
385
417
    CONST84 char *argv[])
424
456
 
425
457
 
426
458
static int Rrd_Graph(
427
 
    ClientData clientData,
 
459
    ClientData __attribute__((unused)) clientData,
428
460
    Tcl_Interp *interp,
429
461
    int argc,
430
462
    CONST84 char *argv[])
472
504
         * Must dup() file descriptor so we can fclose(stream), otherwise the fclose()
473
505
         * would close Tcl's file descriptor
474
506
         */
475
 
        if ((fd2 = dup((int) fd1)) == -1) {
 
507
        if ((fd2 = dup((int)fd1)) == -1) {
476
508
            Tcl_AppendResult(interp,
477
509
                             "dup() failed for file descriptor associated with \"",
478
510
                             argv[1], "\": ", strerror(errno), (char *) NULL);
534
566
 
535
567
 
536
568
static int Rrd_Tune(
537
 
    ClientData clientData,
 
569
    ClientData __attribute__((unused)) clientData,
538
570
    Tcl_Interp *interp,
539
571
    int argc,
540
572
    CONST84 char *argv[])
558
590
 
559
591
 
560
592
static int Rrd_Resize(
561
 
    ClientData clientData,
 
593
    ClientData __attribute__((unused)) clientData,
562
594
    Tcl_Interp *interp,
563
595
    int argc,
564
596
    CONST84 char *argv[])
582
614
 
583
615
 
584
616
static int Rrd_Restore(
585
 
    ClientData clientData,
 
617
    ClientData __attribute__((unused)) clientData,
586
618
    Tcl_Interp *interp,
587
619
    int argc,
588
620
    CONST84 char *argv[])
618
650
static CmdInfo rrdCmds[] = {
619
651
    {"Rrd::create", Rrd_Create, 1}, /* Thread-safe version */
620
652
    {"Rrd::dump", Rrd_Dump, 0}, /* Thread-safe version */
 
653
    {"Rrd::flushcached", Rrd_Flushcached, 0},
621
654
    {"Rrd::last", Rrd_Last, 0}, /* Thread-safe version */
622
655
    {"Rrd::lastupdate", Rrd_Lastupdate, 0}, /* Thread-safe version */
623
656
    {"Rrd::update", Rrd_Update, 1}, /* Thread-safe version */