summaryrefslogtreecommitdiff
path: root/tools/stats_log_api_gen/native_writer.cpp
diff options
context:
space:
mode:
authorSalud Lemus <saludlemus@google.com>2020-07-17 23:28:10 +0000
committerSalud Lemus <saludlemus@google.com>2020-07-18 00:26:10 +0000
commit8b84a38e8c8e39fca93fe0196465f3086db123e1 (patch)
tree75365be77cba52f57d08fec31e9bcb7cb076dc02 /tools/stats_log_api_gen/native_writer.cpp
parent6d99ddcecbec1d4e574cffb7b422a031435bed8f (diff)
Revert "Add pulled atoms support for native clients in stats-log..."
Revert submission 12111163-native pulled atoms support Reason for revert: ld.lld: error: undefined symbol: AStatsEvent_getBuffer Bug link: https://b.corp.google.com/issues/151102177 Reverted Changes: I57911864c:Add pulled atoms support for native clients in sta... I069792c0e:Make libstatspull host supported Change-Id: I665448247d3bf7d05251d302a38b2a7f61a7c071
Diffstat (limited to 'tools/stats_log_api_gen/native_writer.cpp')
-rw-r--r--tools/stats_log_api_gen/native_writer.cpp190
1 files changed, 63 insertions, 127 deletions
diff --git a/tools/stats_log_api_gen/native_writer.cpp b/tools/stats_log_api_gen/native_writer.cpp
index 21e88b360dcd..0c6c0099e459 100644
--- a/tools/stats_log_api_gen/native_writer.cpp
+++ b/tools/stats_log_api_gen/native_writer.cpp
@@ -82,77 +82,21 @@ static void write_annotations(FILE* out, int argIndex,
}
}
-static int write_native_method_body(FILE* out, vector<java_type_t>& signature,
- const FieldNumberToAtomDeclSet& fieldNumberToAtomDeclSet,
- const AtomDecl& attributionDecl) {
- int argIndex = 1;
- fprintf(out, " AStatsEvent_setAtomId(event, code);\n");
- write_annotations(out, ATOM_ID_FIELD_NUMBER, fieldNumberToAtomDeclSet, "AStatsEvent_",
- "event, ");
- for (vector<java_type_t>::const_iterator arg = signature.begin();
- arg != signature.end(); arg++) {
- switch (*arg) {
- case JAVA_TYPE_ATTRIBUTION_CHAIN: {
- const char* uidName = attributionDecl.fields.front().name.c_str();
- const char* tagName = attributionDecl.fields.back().name.c_str();
- fprintf(out,
- " AStatsEvent_writeAttributionChain(event, "
- "reinterpret_cast<const uint32_t*>(%s), %s.data(), "
- "static_cast<uint8_t>(%s_length));\n",
- uidName, tagName, uidName);
- break;
- }
- case JAVA_TYPE_BYTE_ARRAY:
- fprintf(out,
- " AStatsEvent_writeByteArray(event, "
- "reinterpret_cast<const uint8_t*>(arg%d.arg), "
- "arg%d.arg_length);\n",
- argIndex, argIndex);
- break;
- case JAVA_TYPE_BOOLEAN:
- fprintf(out, " AStatsEvent_writeBool(event, arg%d);\n", argIndex);
- break;
- case JAVA_TYPE_INT: // Fall through.
- case JAVA_TYPE_ENUM:
- fprintf(out, " AStatsEvent_writeInt32(event, arg%d);\n", argIndex);
- break;
- case JAVA_TYPE_FLOAT:
- fprintf(out, " AStatsEvent_writeFloat(event, arg%d);\n", argIndex);
- break;
- case JAVA_TYPE_LONG:
- fprintf(out, " AStatsEvent_writeInt64(event, arg%d);\n", argIndex);
- break;
- case JAVA_TYPE_STRING:
- fprintf(out, " AStatsEvent_writeString(event, arg%d);\n", argIndex);
- break;
- default:
- // Unsupported types: OBJECT, DOUBLE, KEY_VALUE_PAIRS
- fprintf(stderr, "Encountered unsupported type.");
- return 1;
- }
- write_annotations(out, argIndex, fieldNumberToAtomDeclSet, "AStatsEvent_",
- "event, ");
- argIndex++;
- }
- return 0;
-}
-
-static int write_native_stats_write_methods(FILE* out, const SignatureInfoMap& signatureInfoMap,
+static int write_native_stats_write_methods(FILE* out, const Atoms& atoms,
const AtomDecl& attributionDecl, const bool supportQ) {
fprintf(out, "\n");
- for (auto signatureInfoMapIt = signatureInfoMap.begin();
- signatureInfoMapIt != signatureInfoMap.end(); signatureInfoMapIt++) {
+ for (auto signatureInfoMapIt = atoms.signatureInfoMap.begin();
+ signatureInfoMapIt != atoms.signatureInfoMap.end(); signatureInfoMapIt++) {
vector<java_type_t> signature = signatureInfoMapIt->first;
const FieldNumberToAtomDeclSet& fieldNumberToAtomDeclSet = signatureInfoMapIt->second;
// Key value pairs not supported in native.
if (find(signature.begin(), signature.end(), JAVA_TYPE_KEY_VALUE_PAIR) != signature.end()) {
continue;
}
- write_native_method_signature(out, "int stats_write(", signature, attributionDecl, " {");
+ write_native_method_signature(out, "int stats_write", signature, attributionDecl, " {");
- // Write method body.
+ int argIndex = 1;
if (supportQ) {
- int argIndex = 1;
fprintf(out, " StatsEventCompat event;\n");
fprintf(out, " event.setAtomId(code);\n");
write_annotations(out, ATOM_ID_FIELD_NUMBER, fieldNumberToAtomDeclSet, "event.", "");
@@ -194,36 +138,78 @@ static int write_native_stats_write_methods(FILE* out, const SignatureInfoMap& s
write_annotations(out, argIndex, fieldNumberToAtomDeclSet, "event.", "");
argIndex++;
}
- fprintf(out, " return event.writeToSocket();\n"); // end method body.
+ fprintf(out, " return event.writeToSocket();\n");
} else {
fprintf(out, " AStatsEvent* event = AStatsEvent_obtain();\n");
- int ret = write_native_method_body(out, signature, fieldNumberToAtomDeclSet,
- attributionDecl);
- if (ret != 0) {
- return ret;
+ fprintf(out, " AStatsEvent_setAtomId(event, code);\n");
+ write_annotations(out, ATOM_ID_FIELD_NUMBER, fieldNumberToAtomDeclSet, "AStatsEvent_",
+ "event, ");
+ for (vector<java_type_t>::const_iterator arg = signature.begin();
+ arg != signature.end(); arg++) {
+ switch (*arg) {
+ case JAVA_TYPE_ATTRIBUTION_CHAIN: {
+ const char* uidName = attributionDecl.fields.front().name.c_str();
+ const char* tagName = attributionDecl.fields.back().name.c_str();
+ fprintf(out,
+ " AStatsEvent_writeAttributionChain(event, "
+ "reinterpret_cast<const uint32_t*>(%s), %s.data(), "
+ "static_cast<uint8_t>(%s_length));\n",
+ uidName, tagName, uidName);
+ break;
+ }
+ case JAVA_TYPE_BYTE_ARRAY:
+ fprintf(out,
+ " AStatsEvent_writeByteArray(event, "
+ "reinterpret_cast<const uint8_t*>(arg%d.arg), "
+ "arg%d.arg_length);\n",
+ argIndex, argIndex);
+ break;
+ case JAVA_TYPE_BOOLEAN:
+ fprintf(out, " AStatsEvent_writeBool(event, arg%d);\n", argIndex);
+ break;
+ case JAVA_TYPE_INT: // Fall through.
+ case JAVA_TYPE_ENUM:
+ fprintf(out, " AStatsEvent_writeInt32(event, arg%d);\n", argIndex);
+ break;
+ case JAVA_TYPE_FLOAT:
+ fprintf(out, " AStatsEvent_writeFloat(event, arg%d);\n", argIndex);
+ break;
+ case JAVA_TYPE_LONG:
+ fprintf(out, " AStatsEvent_writeInt64(event, arg%d);\n", argIndex);
+ break;
+ case JAVA_TYPE_STRING:
+ fprintf(out, " AStatsEvent_writeString(event, arg%d);\n", argIndex);
+ break;
+ default:
+ // Unsupported types: OBJECT, DOUBLE, KEY_VALUE_PAIRS
+ fprintf(stderr, "Encountered unsupported type.");
+ return 1;
+ }
+ write_annotations(out, argIndex, fieldNumberToAtomDeclSet, "AStatsEvent_",
+ "event, ");
+ argIndex++;
}
fprintf(out, " const int ret = AStatsEvent_write(event);\n");
fprintf(out, " AStatsEvent_release(event);\n");
- fprintf(out, " return ret;\n"); // end method body.
+ fprintf(out, " return ret;\n");
}
- fprintf(out, "}\n\n"); // end method.
+ fprintf(out, "}\n\n");
}
return 0;
}
-static void write_native_stats_write_non_chained_methods(FILE* out,
- const SignatureInfoMap& signatureInfoMap,
+static void write_native_stats_write_non_chained_methods(FILE* out, const Atoms& atoms,
const AtomDecl& attributionDecl) {
fprintf(out, "\n");
- for (auto signature_it = signatureInfoMap.begin();
- signature_it != signatureInfoMap.end(); signature_it++) {
+ for (auto signature_it = atoms.nonChainedSignatureInfoMap.begin();
+ signature_it != atoms.nonChainedSignatureInfoMap.end(); signature_it++) {
vector<java_type_t> signature = signature_it->first;
// Key value pairs not supported in native.
if (find(signature.begin(), signature.end(), JAVA_TYPE_KEY_VALUE_PAIR) != signature.end()) {
continue;
}
- write_native_method_signature(out, "int stats_write_non_chained(", signature,
+ write_native_method_signature(out, "int stats_write_non_chained", signature,
attributionDecl, " {");
vector<java_type_t> newSignature;
@@ -249,34 +235,6 @@ static void write_native_stats_write_non_chained_methods(FILE* out,
}
}
-static int write_native_build_stats_event_methods(FILE* out,
- const SignatureInfoMap& signatureInfoMap,
- const AtomDecl& attributionDecl) {
- fprintf(out, "\n");
- for (auto signatureInfoMapIt = signatureInfoMap.begin();
- signatureInfoMapIt != signatureInfoMap.end(); signatureInfoMapIt++) {
- vector<java_type_t> signature = signatureInfoMapIt->first;
- const FieldNumberToAtomDeclSet& fieldNumberToAtomDeclSet = signatureInfoMapIt->second;
- // Key value pairs not supported in native.
- if (find(signature.begin(), signature.end(), JAVA_TYPE_KEY_VALUE_PAIR) != signature.end()) {
- continue;
- }
- write_native_method_signature(out, "void addAStatsEvent(AStatsEventList* pulled_data, ",
- signature, attributionDecl, " {");
-
- fprintf(out, " AStatsEvent* event = AStatsEventList_addStatsEvent(pulled_data);\n");
- int ret = write_native_method_body(out, signature, fieldNumberToAtomDeclSet,
- attributionDecl);
- if (ret != 0) {
- return ret;
- }
- fprintf(out, " AStatsEvent_build(event);\n"); // end method body.
-
- fprintf(out, "}\n\n"); // end method.
- }
- return 0;
-}
-
static void write_native_method_header(FILE* out, const string& methodName,
const SignatureInfoMap& signatureInfoMap,
const AtomDecl& attributionDecl) {
@@ -304,22 +262,13 @@ int write_stats_log_cpp(FILE* out, const Atoms& atoms, const AtomDecl& attributi
fprintf(out, "#include <StatsEventCompat.h>\n");
} else {
fprintf(out, "#include <stats_event.h>\n");
-
- if (!atoms.pulledAtomsSignatureInfoMap.empty()) {
- fprintf(out, "#include <stats_pull_atom_callback.h>\n");
- }
}
-
-
fprintf(out, "\n");
write_namespace(out, cppNamespace);
- write_native_stats_write_methods(out, atoms.signatureInfoMap, attributionDecl, supportQ);
- write_native_stats_write_non_chained_methods(out, atoms.nonChainedSignatureInfoMap,
- attributionDecl);
- write_native_build_stats_event_methods(out, atoms.pulledAtomsSignatureInfoMap,
- attributionDecl);
+ write_native_stats_write_methods(out, atoms, attributionDecl, supportQ);
+ write_native_stats_write_non_chained_methods(out, atoms, attributionDecl);
// Print footer
fprintf(out, "\n");
@@ -339,9 +288,6 @@ int write_stats_log_header(FILE* out, const Atoms& atoms, const AtomDecl& attrib
fprintf(out, "#include <vector>\n");
fprintf(out, "#include <map>\n");
fprintf(out, "#include <set>\n");
- if (!atoms.pulledAtomsSignatureInfoMap.empty()) {
- fprintf(out, "#include <stats_pull_atom_callback.h>\n");
- }
fprintf(out, "\n");
write_namespace(out, cppNamespace);
@@ -391,22 +337,12 @@ int write_stats_log_header(FILE* out, const Atoms& atoms, const AtomDecl& attrib
fprintf(out, "//\n");
fprintf(out, "// Write methods\n");
fprintf(out, "//\n");
- write_native_method_header(out, "int stats_write(", atoms.signatureInfoMap, attributionDecl);
- fprintf(out, "\n");
+ write_native_method_header(out, "int stats_write", atoms.signatureInfoMap, attributionDecl);
fprintf(out, "//\n");
fprintf(out, "// Write flattened methods\n");
fprintf(out, "//\n");
- write_native_method_header(out, "int stats_write_non_chained(", atoms.nonChainedSignatureInfoMap,
- attributionDecl);
- fprintf(out, "\n");
-
- // Print pulled atoms methods.
- fprintf(out, "//\n");
- fprintf(out, "// Add AStatsEvent methods\n");
- fprintf(out, "//\n");
- write_native_method_header(out, "void addAStatsEvent(AStatsEventList* pulled_data, ",
- atoms.pulledAtomsSignatureInfoMap,
+ write_native_method_header(out, "int stats_write_non_chained", atoms.nonChainedSignatureInfoMap,
attributionDecl);
fprintf(out, "\n");