18
18
using std::unique_ptr;
19
19
20
20
namespace {
21
- String makeFirebaseURL (const String & path, const String & auth) {
22
- String url;
21
+ std::string makeFirebaseURL (const std::string & path, const std::string & auth) {
22
+ std::string url;
23
23
if (path[0 ] != ' /' ) {
24
24
url = " /" ;
25
25
}
@@ -32,71 +32,71 @@ String makeFirebaseURL(const String& path, const String& auth) {
32
32
33
33
} // namespace
34
34
35
- Firebase::Firebase (const String & host, const String & auth) : host_(host), auth_(auth) {
35
+ Firebase::Firebase (const std::string & host, const std::string & auth) : host_(host), auth_(auth) {
36
36
http_.reset (FirebaseHttpClient::create ());
37
37
http_->setReuseConnection (true );
38
38
}
39
39
40
- const String & Firebase::auth () const {
40
+ const std::string & Firebase::auth () const {
41
41
return auth_;
42
42
}
43
43
44
- FirebaseGet Firebase::get (const String & path) {
44
+ FirebaseGet Firebase::get (const std::string & path) {
45
45
return FirebaseGet (host_, auth_, path, http_.get ());
46
46
}
47
47
48
- unique_ptr<FirebaseGet> Firebase::getPtr (const String & path) {
48
+ unique_ptr<FirebaseGet> Firebase::getPtr (const std::string & path) {
49
49
return unique_ptr<FirebaseGet>(new FirebaseGet (host_, auth_, path, http_.get ()));
50
50
}
51
51
52
- FirebaseSet Firebase::set (const String & path, const String & value) {
52
+ FirebaseSet Firebase::set (const std::string & path, const std::string & value) {
53
53
return FirebaseSet (host_, auth_, path, value, http_.get ());
54
54
}
55
55
56
- unique_ptr<FirebaseSet> Firebase::setPtr (const String & path,
57
- const String & value) {
56
+ unique_ptr<FirebaseSet> Firebase::setPtr (const std::string & path,
57
+ const std::string & value) {
58
58
return unique_ptr<FirebaseSet>(
59
59
new FirebaseSet (host_, auth_, path, value, http_.get ()));
60
60
}
61
61
62
- FirebasePush Firebase::push (const String & path, const String & value) {
62
+ FirebasePush Firebase::push (const std::string & path, const std::string & value) {
63
63
return FirebasePush (host_, auth_, path, value, http_.get ());
64
64
}
65
- unique_ptr<FirebasePush> Firebase::pushPtr (const String & path, const String & value) {
65
+ unique_ptr<FirebasePush> Firebase::pushPtr (const std::string & path, const std::string & value) {
66
66
return unique_ptr<FirebasePush>(
67
67
new FirebasePush (host_, auth_, path, value, http_.get ()));
68
68
}
69
69
70
- FirebaseRemove Firebase::remove (const String & path) {
70
+ FirebaseRemove Firebase::remove (const std::string & path) {
71
71
return FirebaseRemove (host_, auth_, path, http_.get ());
72
72
}
73
73
74
- unique_ptr<FirebaseRemove> Firebase::removePtr (const String & path) {
74
+ unique_ptr<FirebaseRemove> Firebase::removePtr (const std::string & path) {
75
75
return unique_ptr<FirebaseRemove>(
76
76
new FirebaseRemove (host_, auth_, path, http_.get ()));
77
77
}
78
78
79
- FirebaseStream Firebase::stream (const String & path) {
79
+ FirebaseStream Firebase::stream (const std::string & path) {
80
80
// TODO: create new client dedicated to stream.
81
81
return FirebaseStream (host_, auth_, path, http_.get ());
82
82
}
83
83
84
- unique_ptr<FirebaseStream> Firebase::streamPtr (const String & path) {
84
+ unique_ptr<FirebaseStream> Firebase::streamPtr (const std::string & path) {
85
85
// TODO: create new client dedicated to stream.
86
86
return unique_ptr<FirebaseStream>(
87
87
new FirebaseStream (host_, auth_, path, http_.get ()));
88
88
}
89
89
90
90
// FirebaseCall
91
- FirebaseCall::FirebaseCall (const String & host, const String & auth,
92
- const char * method, const String & path,
93
- const String & data, FirebaseHttpClient* http) : http_(http) {
94
- String path_with_auth = makeFirebaseURL (path, auth);
91
+ FirebaseCall::FirebaseCall (const std::string & host, const std::string & auth,
92
+ const char * method, const std::string & path,
93
+ const std::string & data, FirebaseHttpClient* http) : http_(http) {
94
+ std::string path_with_auth = makeFirebaseURL (path, auth);
95
95
http_->setReuseConnection (true );
96
96
http_->begin (host, path_with_auth);
97
97
98
98
bool followRedirect = false ;
99
- if (String (method) == " STREAM" ) {
99
+ if (std::string (method) == " STREAM" ) {
100
100
method = " GET" ;
101
101
http_->addHeader (" Accept" , " text/event-stream" );
102
102
followRedirect = true ;
@@ -112,18 +112,18 @@ FirebaseCall::FirebaseCall(const String& host, const String& auth,
112
112
// TODO: Add a max redirect check
113
113
if (followRedirect) {
114
114
while (status == HttpStatus::TEMPORARY_REDIRECT) {
115
- String location = http_->header (" Location" );
115
+ std::string location = http_->header (" Location" );
116
116
http_->setReuseConnection (false );
117
117
http_->end ();
118
118
http_->setReuseConnection (true );
119
119
http_->begin (location);
120
- status = http_->sendRequest (" GET" , String ());
120
+ status = http_->sendRequest (" GET" , std::string ());
121
121
}
122
122
}
123
123
124
124
if (status != 200 ) {
125
125
error_ = FirebaseError (status,
126
- String (method) + " " + path_with_auth +
126
+ std::string (method) + " " + path_with_auth +
127
127
" : " + http_->errorToString (status));
128
128
}
129
129
@@ -137,19 +137,19 @@ const JsonObject& FirebaseCall::json() {
137
137
// TODO(edcoyne): This is not efficient, we should do something smarter with
138
138
// the buffers.
139
139
buffer_ = DynamicJsonBuffer ();
140
- return buffer_.parseObject (response ());
140
+ return buffer_.parseObject (response (). c_str () );
141
141
}
142
142
143
143
// FirebaseGet
144
- FirebaseGet::FirebaseGet (const String & host, const String & auth,
145
- const String & path,
144
+ FirebaseGet::FirebaseGet (const std::string & host, const std::string & auth,
145
+ const std::string & path,
146
146
FirebaseHttpClient* http)
147
147
: FirebaseCall(host, auth, " GET" , path, " " , http) {
148
148
}
149
149
150
150
// FirebaseSet
151
- FirebaseSet::FirebaseSet (const String & host, const String & auth,
152
- const String & path, const String & value,
151
+ FirebaseSet::FirebaseSet (const std::string & host, const std::string & auth,
152
+ const std::string & path, const std::string & value,
153
153
FirebaseHttpClient* http)
154
154
: FirebaseCall(host, auth, " PUT" , path, value, http) {
155
155
if (!error ()) {
@@ -158,8 +158,8 @@ FirebaseSet::FirebaseSet(const String& host, const String& auth,
158
158
}
159
159
}
160
160
// FirebasePush
161
- FirebasePush::FirebasePush (const String & host, const String & auth,
162
- const String & path, const String & value,
161
+ FirebasePush::FirebasePush (const std::string & host, const std::string & auth,
162
+ const std::string & path, const std::string & value,
163
163
FirebaseHttpClient* http)
164
164
: FirebaseCall(host, auth, " POST" , path, value, http) {
165
165
if (!error ()) {
@@ -168,15 +168,15 @@ FirebasePush::FirebasePush(const String& host, const String& auth,
168
168
}
169
169
170
170
// FirebasePush
171
- FirebaseRemove::FirebaseRemove (const String & host, const String & auth,
172
- const String & path,
171
+ FirebaseRemove::FirebaseRemove (const std::string & host, const std::string & auth,
172
+ const std::string & path,
173
173
FirebaseHttpClient* http)
174
174
: FirebaseCall(host, auth, " DELETE" , path, " " , http) {
175
175
}
176
176
177
177
// FirebaseStream
178
- FirebaseStream::FirebaseStream (const String & host, const String & auth,
179
- const String & path,
178
+ FirebaseStream::FirebaseStream (const std::string & host, const std::string & auth,
179
+ const std::string & path,
180
180
FirebaseHttpClient* http)
181
181
: FirebaseCall(host, auth, " STREAM" , path, " " , http) {
182
182
}
@@ -185,18 +185,18 @@ bool FirebaseStream::available() {
185
185
return http_->getStreamPtr ()->available ();
186
186
}
187
187
188
- FirebaseStream::Event FirebaseStream::read (String & event) {
188
+ FirebaseStream::Event FirebaseStream::read (std::string & event) {
189
189
auto client = http_->getStreamPtr ();
190
190
Event type;
191
- String typeStr = client->readStringUntil (' \n ' ).substring (7 );
191
+ std::string typeStr = client->readStringUntil (' \n ' ).substring (7 ). c_str ( );
192
192
if (typeStr == " put" ) {
193
193
type = Event::PUT;
194
194
} else if (typeStr == " patch" ) {
195
195
type = Event::PATCH;
196
196
} else {
197
197
type = Event::UNKNOWN;
198
198
}
199
- event = client->readStringUntil (' \n ' ).substring (6 );
199
+ event = client->readStringUntil (' \n ' ).substring (6 ). c_str () ;
200
200
client->readStringUntil (' \n ' ); // consume separator
201
201
return type;
202
202
}
0 commit comments