-
Notifications
You must be signed in to change notification settings - Fork 76
Expand file tree
/
Copy pathRRDatabase.cpp
More file actions
36 lines (27 loc) · 778 Bytes
/
RRDatabase.cpp
File metadata and controls
36 lines (27 loc) · 778 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/*
* RRDatabase.cpp
*
*/
#include <rrd.h>
#include <iostream>
#include <log4cpp/Category.hh>
#include <log4cpp/Priority.hh>
#include "RRDatabase.h"
RRDatabase::RRDatabase(const char* filename) {
_filename = new char[strlen(filename) + 1];
strcpy(_filename, filename);
}
RRDatabase::~RRDatabase() {
delete[] _filename;
}
int RRDatabase::update(time_t time, double counter) {
char values[256];
snprintf(values, 255, "%ld:%.1f:%.0f", (long)time, counter/*kWh*/, counter * 3600000. /*Ws*/);
char *updateparams[] = { "rrdupdate", _filename, values, NULL };
rrd_clear_error();
int res = rrd_update(3, updateparams);
if (res) {
log4cpp::Category::getRoot() << log4cpp::Priority::ERROR << rrd_get_error();
}
return res;
}