2828#include " Point.h"
2929#include " util/helpers.h"
3030
31- Point::Point (String measurement):
31+ Point::Point (const String & measurement):
3232 _measurement(escapeKey(measurement, false )),
3333 _tags(" " ),
3434 _fields(" " ),
@@ -37,7 +37,7 @@ Point::Point(String measurement):
3737
3838}
3939
40- void Point::addTag (String name, String value) {
40+ void Point::addTag (const String & name, String value) {
4141 if (_tags.length () > 0 ) {
4242 _tags += ' ,' ;
4343 }
@@ -46,23 +46,67 @@ void Point::addTag(String name, String value) {
4646 _tags += escapeKey (value);
4747}
4848
49- void Point::addField (String name, long long value) {
49+ void Point::addField (const String & name, long long value) {
5050 char buff[50 ];
5151 snprintf (buff, 50 , " %lld" , value);
5252 putField (name, String (buff)+" i" );
5353}
5454
55- void Point::addField (String name, unsigned long long value) {
55+ void Point::addField (const String & name, unsigned long long value) {
5656 char buff[50 ];
5757 snprintf (buff, 50 , " %llu" , value);
5858 putField (name, String (buff)+" i" );
5959}
6060
61- void Point::addField (String name, const char *value) {
62- putField (name, " \" " + escapeValue (value) + " \" " );
61+ void Point::addField (const String & name, const char *value) {
62+ putField (name, escapeValue (value));
6363}
6464
65- void Point::putField (String name, String value) {
65+ void Point::addField (const String &name, const __FlashStringHelper *pstr) {
66+ addField (name, String (pstr));
67+ }
68+
69+ void Point::addField (const String &name, float value, int decimalPlaces) {
70+ if (!isnan (value)) putField (name, String (value, decimalPlaces));
71+ }
72+
73+ void Point::addField (const String &name, double value, int decimalPlaces) {
74+ if (!isnan (value)) putField (name, String (value, decimalPlaces));
75+ }
76+
77+ void Point::addField (const String &name, char value) {
78+ addField (name, String (value).c_str ());
79+ }
80+
81+ void Point::addField (const String &name, unsigned char value) {
82+ putField (name, String (value)+" i" );
83+ }
84+
85+ void Point::addField (const String &name, int value) {
86+ putField (name, String (value)+" i" );
87+ }
88+
89+ void Point::addField (const String &name, unsigned int value) {
90+ putField (name, String (value)+" i" );
91+ }
92+
93+ void Point::addField (const String &name, long value) {
94+ putField (name, String (value)+" i" );
95+ }
96+
97+ void Point::addField (const String &name, unsigned long value) {
98+ putField (name, String (value)+" i" );
99+ }
100+
101+ void Point::addField (const String &name, bool value) {
102+ putField (name, bool2string (value));
103+ }
104+
105+ void Point::addField (const String &name, const String &value) {
106+ addField (name, value.c_str ());
107+ }
108+
109+ void Point::putField (const String &name, const String &value) {
66110 if (_fields.length () > 0 ) {
67111 _fields += ' ,' ;
68112 }
@@ -71,11 +115,11 @@ void Point::putField(String name, String value) {
71115 _fields += value;
72116}
73117
74- String Point::toLineProtocol (String includeTags) const {
118+ String Point::toLineProtocol (const String & includeTags) const {
75119 return createLineProtocol (includeTags);
76120}
77121
78- String Point::createLineProtocol (String &incTags) const {
122+ String Point::createLineProtocol (const String &incTags) const {
79123 String line;
80124 line.reserve (_measurement.length () + 1 + incTags.length () + 1 + _tags.length () + 1 + _fields.length () + 1 + _timestamp.length ());
81125 line += _measurement;
@@ -125,7 +169,7 @@ void Point::setTime(unsigned long long timestamp) {
125169 _timestamp = timeStampToString (timestamp);
126170}
127171
128- void Point::setTime (String timestamp) {
172+ void Point::setTime (const String & timestamp) {
129173 _timestamp = timestamp;
130174}
131175
0 commit comments