Skip to content

Commit

Permalink
Merge pull request tobiasschuerg#165 from drageryd/master
Browse files Browse the repository at this point in the history
Support for long long and unsigned long long fields
  • Loading branch information
vlastahajek authored Oct 29, 2021
2 parents f32a22c + 0239f7c commit 51dbfff
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 6 deletions.
12 changes: 12 additions & 0 deletions src/Point.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,18 @@ void Point::addTag(String name, String value) {
_tags += escapeKey(value);
}

void Point::addField(String name, long long value) {
char buff[50];
snprintf(buff, 50, "%lld", value);
putField(name, String(buff)+"i");
}

void Point::addField(String name, unsigned long long value) {
char buff[50];
snprintf(buff, 50, "%llu", value);
putField(name, String(buff)+"i");
}

void Point::addField(String name, const char *value) {
putField(name, "\"" + escapeValue(value) + "\"");
}
Expand Down
2 changes: 2 additions & 0 deletions src/Point.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ friend class InfluxDBClient;
void addField(String name, unsigned long value) { putField(name, String(value)+"i"); }
void addField(String name, bool value) { putField(name, bool2string(value)); }
void addField(String name, String value) { addField(name, value.c_str()); }
void addField(String name, long long value);
void addField(String name, unsigned long long value);
void addField(String name, const char *value);
// Set timestamp to `now()` and store it in specified precision, nanoseconds by default. Date and time must be already set. See `configTime` in the device API
void setTime(WritePrecision writePrecision = WritePrecision::NS);
Expand Down
16 changes: 10 additions & 6 deletions test/Test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -224,19 +224,21 @@ void Test::testPoint() {
p.addField("fieldUInt", 23u);
p.addField("fieldLong", 123456l);
p.addField("fieldULong", 123456ul);
p.addField("fieldLongLong", 9123456789l);
p.addField("fieldULongLong", 9123456789ul);
p.addField("fieldString", "text test");
String line = p.toLineProtocol();
String testLine = "test,tag1=tagvalue fieldInt=-23i,fieldBool=true,fieldFloat1=1.12,fieldFloat2=1.12345,fieldDouble1=1.12,fieldDouble2=1.12345,fieldChar=\"A\",fieldUChar=1i,fieldUInt=23i,fieldLong=123456i,fieldULong=123456i,fieldString=\"text test\"";
String testLine = "test,tag1=tagvalue fieldInt=-23i,fieldBool=true,fieldFloat1=1.12,fieldFloat2=1.12345,fieldDouble1=1.12,fieldDouble2=1.12345,fieldChar=\"A\",fieldUChar=1i,fieldUInt=23i,fieldLong=123456i,fieldULong=123456i,fieldLongLong=9123456789i,fieldULongLong=9123456789i,fieldString=\"text test\"";
TEST_ASSERTM(line == testLine, line);

String defaultTags="dtag=val";
line = p.toLineProtocol(defaultTags);
testLine = "test,dtag=val,tag1=tagvalue fieldInt=-23i,fieldBool=true,fieldFloat1=1.12,fieldFloat2=1.12345,fieldDouble1=1.12,fieldDouble2=1.12345,fieldChar=\"A\",fieldUChar=1i,fieldUInt=23i,fieldLong=123456i,fieldULong=123456i,fieldString=\"text test\"";
testLine = "test,dtag=val,tag1=tagvalue fieldInt=-23i,fieldBool=true,fieldFloat1=1.12,fieldFloat2=1.12345,fieldDouble1=1.12,fieldDouble2=1.12345,fieldChar=\"A\",fieldUChar=1i,fieldUInt=23i,fieldLong=123456i,fieldULong=123456i,fieldLongLong=9123456789i,fieldULongLong=9123456789i,fieldString=\"text test\"";
TEST_ASSERTM(line == testLine, line);

p.clearTags();
line = p.toLineProtocol(defaultTags);
testLine = "test,dtag=val fieldInt=-23i,fieldBool=true,fieldFloat1=1.12,fieldFloat2=1.12345,fieldDouble1=1.12,fieldDouble2=1.12345,fieldChar=\"A\",fieldUChar=1i,fieldUInt=23i,fieldLong=123456i,fieldULong=123456i,fieldString=\"text test\"";
testLine = "test,dtag=val fieldInt=-23i,fieldBool=true,fieldFloat1=1.12,fieldFloat2=1.12345,fieldDouble1=1.12,fieldDouble2=1.12345,fieldChar=\"A\",fieldUChar=1i,fieldUInt=23i,fieldLong=123456i,fieldULong=123456i,fieldLongLong=9123456789i,fieldULongLong=9123456789i,fieldString=\"text test\"";
TEST_ASSERTM(line == testLine, line);


Expand Down Expand Up @@ -332,21 +334,23 @@ void Test::testLineProtocol() {
p.addField("fieldUInt", 23u);
p.addField("fieldLong", 123456l);
p.addField("fieldULong", 123456ul);
p.addField("fieldLongLong", 9123456789l);
p.addField("fieldULongLong", 9123456789ul);
p.addField("fieldString", "text test");

String line = client.pointToLineProtocol(p);
String testLine = "test,tag1=tagvalue fieldInt=-23i,fieldBool=true,fieldFloat1=1.12,fieldFloat2=1.12345,fieldDouble1=1.12,fieldDouble2=1.12345,fieldChar=\"A\",fieldUChar=1i,fieldUInt=23i,fieldLong=123456i,fieldULong=123456i,fieldString=\"text test\"";
String testLine = "test,tag1=tagvalue fieldInt=-23i,fieldBool=true,fieldFloat1=1.12,fieldFloat2=1.12345,fieldDouble1=1.12,fieldDouble2=1.12345,fieldChar=\"A\",fieldUChar=1i,fieldUInt=23i,fieldLong=123456i,fieldULong=123456i,fieldLongLong=9123456789i,fieldULongLong=9123456789i,fieldString=\"text test\"";
TEST_ASSERTM(line == testLine, line);

client.setWriteOptions(WriteOptions().addDefaultTag("dtag","val"));

line = client.pointToLineProtocol(p);
testLine = "test,dtag=val,tag1=tagvalue fieldInt=-23i,fieldBool=true,fieldFloat1=1.12,fieldFloat2=1.12345,fieldDouble1=1.12,fieldDouble2=1.12345,fieldChar=\"A\",fieldUChar=1i,fieldUInt=23i,fieldLong=123456i,fieldULong=123456i,fieldString=\"text test\"";
testLine = "test,dtag=val,tag1=tagvalue fieldInt=-23i,fieldBool=true,fieldFloat1=1.12,fieldFloat2=1.12345,fieldDouble1=1.12,fieldDouble2=1.12345,fieldChar=\"A\",fieldUChar=1i,fieldUInt=23i,fieldLong=123456i,fieldULong=123456i,fieldLongLong=9123456789i,fieldULongLong=9123456789i,fieldString=\"text test\"";
TEST_ASSERTM(line == testLine, line);

p.clearTags();
line = client.pointToLineProtocol(p);
testLine = "test,dtag=val fieldInt=-23i,fieldBool=true,fieldFloat1=1.12,fieldFloat2=1.12345,fieldDouble1=1.12,fieldDouble2=1.12345,fieldChar=\"A\",fieldUChar=1i,fieldUInt=23i,fieldLong=123456i,fieldULong=123456i,fieldString=\"text test\"";
testLine = "test,dtag=val fieldInt=-23i,fieldBool=true,fieldFloat1=1.12,fieldFloat2=1.12345,fieldDouble1=1.12,fieldDouble2=1.12345,fieldChar=\"A\",fieldUChar=1i,fieldUInt=23i,fieldLong=123456i,fieldULong=123456i,fieldLongLong=9123456789i,fieldULongLong=9123456789i,fieldString=\"text test\"";
TEST_ASSERTM(line == testLine, line);


Expand Down

0 comments on commit 51dbfff

Please sign in to comment.