#include <google/protobuf/stubs/map_util.h>
#include <google/protobuf/stubs/mathlimits.h>
+#include <google/protobuf/port_def.inc>
+
namespace google {
namespace protobuf {
namespace util {
namespace converter {
bool GetBoolOptionOrDefault(
- const google::protobuf::RepeatedPtrField<google::protobuf::Option>& options,
- const string& option_name, bool default_value) {
+ const RepeatedPtrField<google::protobuf::Option>& options,
+ const std::string& option_name, bool default_value) {
const google::protobuf::Option* opt = FindOptionOrNull(options, option_name);
if (opt == nullptr) {
return default_value;
}
int64 GetInt64OptionOrDefault(
- const google::protobuf::RepeatedPtrField<google::protobuf::Option>& options,
- const string& option_name, int64 default_value) {
+ const RepeatedPtrField<google::protobuf::Option>& options,
+ const std::string& option_name, int64 default_value) {
const google::protobuf::Option* opt = FindOptionOrNull(options, option_name);
if (opt == nullptr) {
return default_value;
}
double GetDoubleOptionOrDefault(
- const google::protobuf::RepeatedPtrField<google::protobuf::Option>& options,
- const string& option_name, double default_value) {
+ const RepeatedPtrField<google::protobuf::Option>& options,
+ const std::string& option_name, double default_value) {
const google::protobuf::Option* opt = FindOptionOrNull(options, option_name);
if (opt == nullptr) {
return default_value;
return GetDoubleFromAny(opt->value());
}
-string GetStringOptionOrDefault(
- const google::protobuf::RepeatedPtrField<google::protobuf::Option>& options,
- const string& option_name, const string& default_value) {
+std::string GetStringOptionOrDefault(
+ const RepeatedPtrField<google::protobuf::Option>& options,
+ const std::string& option_name, const std::string& default_value) {
const google::protobuf::Option* opt = FindOptionOrNull(options, option_name);
if (opt == nullptr) {
return default_value;
}
template <typename T>
-void ParseFromAny(const string& data, T* result) {
+void ParseFromAny(const std::string& data, T* result) {
result->ParseFromString(data);
}
return i.value();
}
-string GetStringFromAny(const google::protobuf::Any& any) {
+std::string GetStringFromAny(const google::protobuf::Any& any) {
google::protobuf::StringValue s;
ParseFromAny(any.value(), &s);
return s.value();
}
}
-const string GetFullTypeWithUrl(StringPiece simple_type) {
+const std::string GetFullTypeWithUrl(StringPiece simple_type) {
return StrCat(kTypeServiceBaseUrl, "/", simple_type);
}
const google::protobuf::Option* FindOptionOrNull(
- const google::protobuf::RepeatedPtrField<google::protobuf::Option>& options,
- const string& option_name) {
+ const RepeatedPtrField<google::protobuf::Option>& options,
+ const std::string& option_name) {
for (int i = 0; i < options.size(); ++i) {
const google::protobuf::Option& opt = options.Get(i);
if (opt.name() == option_name) {
if (enum_type != nullptr) {
for (int i = 0; i < enum_type->enumvalue_size(); ++i) {
const google::protobuf::EnumValue& enum_value = enum_type->enumvalue(i);
- string enum_name_without_underscore = enum_value.name();
+ std::string enum_name_without_underscore = enum_value.name();
// Remove underscore from the name.
enum_name_without_underscore.erase(
enum_name_without_underscore.end(), '_'),
enum_name_without_underscore.end());
// Make the name uppercase.
- for (string::iterator it = enum_name_without_underscore.begin();
+ for (std::string::iterator it = enum_name_without_underscore.begin();
it != enum_name_without_underscore.end(); ++it) {
*it = ascii_toupper(*it);
}
return nullptr;
}
-string EnumValueNameToLowerCamelCase(const StringPiece input) {
- string input_string(input);
+std::string EnumValueNameToLowerCamelCase(const StringPiece input) {
+ std::string input_string(input);
std::transform(input_string.begin(), input_string.end(), input_string.begin(),
::tolower);
return ToCamelCase(input_string);
}
-string ToCamelCase(const StringPiece input) {
+std::string ToCamelCase(const StringPiece input) {
bool capitalize_next = false;
bool was_cap = true;
bool is_cap = false;
bool first_word = true;
- string result;
+ std::string result;
result.reserve(input.size());
for (size_t i = 0; i < input.size(); ++i, was_cap = is_cap) {
return result;
}
-string ToSnakeCase(StringPiece input) {
+std::string ToSnakeCase(StringPiece input) {
bool was_not_underscore = false; // Initialize to false for case 1 (below)
bool was_not_cap = false;
- string result;
+ std::string result;
result.reserve(input.size() << 1);
for (size_t i = 0; i < input.size(); ++i) {
return result;
}
-std::set<string>* well_known_types_ = NULL;
-GOOGLE_PROTOBUF_DECLARE_ONCE(well_known_types_init_);
+std::set<std::string>* well_known_types_ = NULL;
+PROTOBUF_NAMESPACE_ID::internal::once_flag well_known_types_init_;
const char* well_known_types_name_array_[] = {
"google.protobuf.Timestamp", "google.protobuf.Duration",
"google.protobuf.DoubleValue", "google.protobuf.FloatValue",
void DeleteWellKnownTypes() { delete well_known_types_; }
void InitWellKnownTypes() {
- well_known_types_ = new std::set<string>;
+ well_known_types_ = new std::set<std::string>;
for (int i = 0; i < GOOGLE_ARRAYSIZE(well_known_types_name_array_); ++i) {
well_known_types_->insert(well_known_types_name_array_[i]);
}
google::protobuf::internal::OnShutdown(&DeleteWellKnownTypes);
}
-bool IsWellKnownType(const string& type_name) {
- InitWellKnownTypes();
+bool IsWellKnownType(const std::string& type_name) {
+ PROTOBUF_NAMESPACE_ID::internal::call_once(well_known_types_init_,
+ InitWellKnownTypes);
return ContainsKey(*well_known_types_, type_name);
}
-bool IsValidBoolString(const string& bool_string) {
+bool IsValidBoolString(const std::string& bool_string) {
return bool_string == "true" || bool_string == "false" ||
bool_string == "1" || bool_string == "0";
}
"google.protobuf.MessageOptions.message_set_wire_format", false);
}
-string DoubleAsString(double value) {
+std::string DoubleAsString(double value) {
if (MathLimits<double>::IsPosInf(value)) return "Infinity";
if (MathLimits<double>::IsNegInf(value)) return "-Infinity";
if (MathLimits<double>::IsNaN(value)) return "NaN";
return SimpleDtoa(value);
}
-string FloatAsString(float value) {
+std::string FloatAsString(float value) {
if (MathLimits<float>::IsFinite(value)) return SimpleFtoa(value);
return DoubleAsString(value);
}
return true;
}
-bool StringStartsWith(StringPiece text, StringPiece prefix) {
- return text.starts_with(prefix);
-}
-
-bool StringEndsWith(StringPiece text, StringPiece suffix) {
- return text.ends_with(suffix);
-}
} // namespace converter
} // namespace util
} // namespace protobuf