Skip to content

Commit 7522314

Browse files
authored
Partial wrapping of pb_ostream_t (pt2) (#903)
Wraps the string encode method.
1 parent 24c4ea8 commit 7522314

File tree

1 file changed

+16
-21
lines changed

1 file changed

+16
-21
lines changed

Firestore/core/src/firebase/firestore/remote/serializer.cc

Lines changed: 16 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ class Writer {
6666
void EncodeBool(bool bool_value);
6767
void EncodeInteger(int64_t integer_value);
6868

69+
void EncodeString(const std::string& string_value);
70+
6971
private:
7072
/**
7173
* Encodes a "varint" to the output stream.
@@ -167,9 +169,9 @@ int64_t DecodeInteger(pb_istream_t* stream) {
167169
return DecodeVarint(stream);
168170
}
169171

170-
void EncodeString(pb_ostream_t* stream, const std::string& string_value) {
172+
void Writer::EncodeString(const std::string& string_value) {
171173
bool status = pb_encode_string(
172-
stream, reinterpret_cast<const pb_byte_t*>(string_value.c_str()),
174+
stream_, reinterpret_cast<const pb_byte_t*>(string_value.c_str()),
173175
string_value.length());
174176
if (!status) {
175177
// TODO(rsgowman): figure out error handling
@@ -238,13 +240,9 @@ void EncodeFieldValueImpl(pb_ostream_t* raw_stream,
238240
break;
239241

240242
case FieldValue::Type::String:
241-
status = pb_encode_tag(raw_stream, PB_WT_STRING,
242-
google_firestore_v1beta1_Value_string_value_tag);
243-
if (!status) {
244-
// TODO(rsgowman): figure out error handling
245-
abort();
246-
}
247-
EncodeString(raw_stream, field_value.string_value());
243+
stream.EncodeTag(PB_WT_STRING,
244+
google_firestore_v1beta1_Value_string_value_tag);
245+
stream.EncodeString(field_value.string_value());
248246
break;
249247

250248
case FieldValue::Type::Object:
@@ -423,27 +421,24 @@ FieldValue DecodeNestedFieldValue(pb_istream_t* stream) {
423421
*
424422
* @param kv The individual key/value pair to encode.
425423
*/
426-
void EncodeFieldsEntry(pb_ostream_t* stream,
424+
void EncodeFieldsEntry(pb_ostream_t* raw_stream,
427425
const std::pair<std::string, FieldValue>& kv) {
426+
Writer stream(raw_stream);
427+
428428
// Encode the key (string)
429-
bool status =
430-
pb_encode_tag(stream, PB_WT_STRING,
431-
google_firestore_v1beta1_MapValue_FieldsEntry_key_tag);
432-
if (!status) {
433-
// TODO(rsgowman): figure out error handling
434-
abort();
435-
}
436-
EncodeString(stream, kv.first);
429+
stream.EncodeTag(PB_WT_STRING,
430+
google_firestore_v1beta1_MapValue_FieldsEntry_key_tag);
431+
stream.EncodeString(kv.first);
437432

438433
// Encode the value (FieldValue)
439-
status =
440-
pb_encode_tag(stream, PB_WT_STRING,
434+
bool status =
435+
pb_encode_tag(raw_stream, PB_WT_STRING,
441436
google_firestore_v1beta1_MapValue_FieldsEntry_value_tag);
442437
if (!status) {
443438
// TODO(rsgowman): figure out error handling
444439
abort();
445440
}
446-
EncodeNestedFieldValue(stream, kv.second);
441+
EncodeNestedFieldValue(raw_stream, kv.second);
447442
}
448443

449444
std::pair<std::string, FieldValue> DecodeFieldsEntry(pb_istream_t* stream) {

0 commit comments

Comments
 (0)