Skip to content

Commit 51dbfff

Browse files
authored
Merge pull request #165 from drageryd/master
Support for long long and unsigned long long fields
2 parents f32a22c + 0239f7c commit 51dbfff

File tree

3 files changed

+24
-6
lines changed

3 files changed

+24
-6
lines changed

src/Point.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,18 @@ void Point::addTag(String name, String value) {
4646
_tags += escapeKey(value);
4747
}
4848

49+
void Point::addField(String name, long long value) {
50+
char buff[50];
51+
snprintf(buff, 50, "%lld", value);
52+
putField(name, String(buff)+"i");
53+
}
54+
55+
void Point::addField(String name, unsigned long long value) {
56+
char buff[50];
57+
snprintf(buff, 50, "%llu", value);
58+
putField(name, String(buff)+"i");
59+
}
60+
4961
void Point::addField(String name, const char *value) {
5062
putField(name, "\"" + escapeValue(value) + "\"");
5163
}

src/Point.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ friend class InfluxDBClient;
5252
void addField(String name, unsigned long value) { putField(name, String(value)+"i"); }
5353
void addField(String name, bool value) { putField(name, bool2string(value)); }
5454
void addField(String name, String value) { addField(name, value.c_str()); }
55+
void addField(String name, long long value);
56+
void addField(String name, unsigned long long value);
5557
void addField(String name, const char *value);
5658
// 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
5759
void setTime(WritePrecision writePrecision = WritePrecision::NS);

test/Test.cpp

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -224,19 +224,21 @@ void Test::testPoint() {
224224
p.addField("fieldUInt", 23u);
225225
p.addField("fieldLong", 123456l);
226226
p.addField("fieldULong", 123456ul);
227+
p.addField("fieldLongLong", 9123456789l);
228+
p.addField("fieldULongLong", 9123456789ul);
227229
p.addField("fieldString", "text test");
228230
String line = p.toLineProtocol();
229-
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\"";
231+
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\"";
230232
TEST_ASSERTM(line == testLine, line);
231233

232234
String defaultTags="dtag=val";
233235
line = p.toLineProtocol(defaultTags);
234-
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\"";
236+
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\"";
235237
TEST_ASSERTM(line == testLine, line);
236238

237239
p.clearTags();
238240
line = p.toLineProtocol(defaultTags);
239-
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\"";
241+
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\"";
240242
TEST_ASSERTM(line == testLine, line);
241243

242244

@@ -332,21 +334,23 @@ void Test::testLineProtocol() {
332334
p.addField("fieldUInt", 23u);
333335
p.addField("fieldLong", 123456l);
334336
p.addField("fieldULong", 123456ul);
337+
p.addField("fieldLongLong", 9123456789l);
338+
p.addField("fieldULongLong", 9123456789ul);
335339
p.addField("fieldString", "text test");
336340

337341
String line = client.pointToLineProtocol(p);
338-
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\"";
342+
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\"";
339343
TEST_ASSERTM(line == testLine, line);
340344

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

343347
line = client.pointToLineProtocol(p);
344-
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\"";
348+
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\"";
345349
TEST_ASSERTM(line == testLine, line);
346350

347351
p.clearTags();
348352
line = client.pointToLineProtocol(p);
349-
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\"";
353+
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\"";
350354
TEST_ASSERTM(line == testLine, line);
351355

352356

0 commit comments

Comments
 (0)