From 0cbe9d948bbe7f280455e5a8224d99341fac7adb Mon Sep 17 00:00:00 2001 From: Salud Lemus Date: Tue, 28 Jul 2020 19:23:56 +0000 Subject: Update stats-log-api-gen source based off of google3 presubmit checks Bug: 161812407 Test: `m statslog-framework-java-gen` Test: `m statslog-telephony-java-gen` Test: `m stats-log-api-gen-test && out/host/linux-x86/nativetest/stats-log-api-gen-test/stats-log-api-gen-test` Change-Id: Id68982e306fbc379ed8e90b33a38b8a6604e66ad --- tools/stats_log_api_gen/utils.cpp | 49 ++++++++++++++++++++++++++++++++------- 1 file changed, 41 insertions(+), 8 deletions(-) (limited to 'tools/stats_log_api_gen/utils.cpp') diff --git a/tools/stats_log_api_gen/utils.cpp b/tools/stats_log_api_gen/utils.cpp index 4b3734053421..1eaf42acf153 100644 --- a/tools/stats_log_api_gen/utils.cpp +++ b/tools/stats_log_api_gen/utils.cpp @@ -16,11 +16,30 @@ #include "utils.h" -#include "android-base/strings.h" - namespace android { namespace stats_log_api_gen { +/** + * Inlining this method because "android-base/strings.h" is not available on + * google3. + */ +static vector Split(const string& s, const string& delimiters) { + GOOGLE_CHECK_NE(delimiters.size(), 0U); + + vector result; + + size_t base = 0; + size_t found; + while (true) { + found = s.find_first_of(delimiters, base); + result.push_back(s.substr(base, found - base)); + if (found == s.npos) break; + base = found + 1; + } + + return result; +} + static void build_non_chained_decl_map(const Atoms& atoms, std::map* decl_map) { for (AtomDeclSet::const_iterator atomIt = atoms.non_chained_decls.begin(); @@ -29,6 +48,20 @@ static void build_non_chained_decl_map(const Atoms& atoms, } } +const map& get_annotation_id_constants() { + static const map* ANNOTATION_ID_CONSTANTS = + new map{ + {ANNOTATION_ID_IS_UID, "ANNOTATION_ID_IS_UID"}, + {ANNOTATION_ID_TRUNCATE_TIMESTAMP, "ANNOTATION_ID_TRUNCATE_TIMESTAMP"}, + {ANNOTATION_ID_PRIMARY_FIELD, "ANNOTATION_ID_PRIMARY_FIELD"}, + {ANNOTATION_ID_PRIMARY_FIELD_FIRST_UID, "ANNOTATION_ID_PRIMARY_FIELD_FIRST_UID"}, + {ANNOTATION_ID_EXCLUSIVE_STATE, "ANNOTATION_ID_EXCLUSIVE_STATE"}, + {ANNOTATION_ID_TRIGGER_STATE_RESET, "ANNOTATION_ID_TRIGGER_STATE_RESET"}, + {ANNOTATION_ID_STATE_NESTED, "ANNOTATION_ID_STATE_NESTED"}}; + + return *ANNOTATION_ID_CONSTANTS; +} + /** * Turn lower and camel case into upper case with underscores. */ @@ -102,15 +135,15 @@ const char* java_type_name(java_type_t type) { // Writes namespaces for the cpp and header files, returning the number of // namespaces written. void write_namespace(FILE* out, const string& cppNamespaces) { - vector cppNamespaceVec = android::base::Split(cppNamespaces, ","); - for (string cppNamespace : cppNamespaceVec) { + vector cppNamespaceVec = Split(cppNamespaces, ","); + for (const string& cppNamespace : cppNamespaceVec) { fprintf(out, "namespace %s {\n", cppNamespace.c_str()); } } // Writes namespace closing brackets for cpp and header files. void write_closing_namespace(FILE* out, const string& cppNamespaces) { - vector cppNamespaceVec = android::base::Split(cppNamespaces, ","); + vector cppNamespaceVec = Split(cppNamespaces, ","); for (auto it = cppNamespaceVec.rbegin(); it != cppNamespaceVec.rend(); ++it) { fprintf(out, "} // namespace %s\n", it->c_str()); } @@ -123,7 +156,7 @@ static void write_cpp_usage(FILE* out, const string& method_name, const string& for (vector::const_iterator field = atom->fields.begin(); field != atom->fields.end(); field++) { if (field->javaType == JAVA_TYPE_ATTRIBUTION_CHAIN) { - for (auto chainField : attributionDecl.fields) { + for (const auto& chainField : attributionDecl.fields) { if (chainField.javaType == JAVA_TYPE_STRING) { fprintf(out, ", const std::vector<%s>& %s", cpp_type_name(chainField.javaType), chainField.name.c_str()); @@ -190,7 +223,7 @@ void write_native_method_signature(FILE* out, const string& signaturePrefix, for (vector::const_iterator arg = signature.begin(); arg != signature.end(); arg++) { if (*arg == JAVA_TYPE_ATTRIBUTION_CHAIN) { - for (auto chainField : attributionDecl.fields) { + for (const auto& chainField : attributionDecl.fields) { if (chainField.javaType == JAVA_TYPE_STRING) { fprintf(out, ", const std::vector<%s>& %s", cpp_type_name(chainField.javaType), chainField.name.c_str()); @@ -222,7 +255,7 @@ void write_native_method_call(FILE* out, const string& methodName, for (vector::const_iterator arg = signature.begin(); arg != signature.end(); arg++) { if (*arg == JAVA_TYPE_ATTRIBUTION_CHAIN) { - for (auto chainField : attributionDecl.fields) { + for (const auto& chainField : attributionDecl.fields) { if (chainField.javaType == JAVA_TYPE_STRING) { fprintf(out, ", %s", chainField.name.c_str()); } else { -- cgit v1.2.3