Merge "Add flag to stats-log-api-gen for WorkSource."
This commit is contained in:
committed by
Android (Google) Code Review
commit
19d17f359d
@@ -586,7 +586,7 @@ java_library {
|
||||
genrule {
|
||||
name: "framework-statslog-gen",
|
||||
tools: ["stats-log-api-gen"],
|
||||
cmd: "$(location stats-log-api-gen) --java $(out)",
|
||||
cmd: "$(location stats-log-api-gen) --java $(out) --worksource",
|
||||
out: ["android/util/StatsLogInternal.java"],
|
||||
}
|
||||
|
||||
|
||||
@@ -443,7 +443,7 @@ int collate_atoms(const Descriptor *descriptor, Atoms *atoms) {
|
||||
AtomDecl nonChainedAtomDecl(atomField->number(), atomField->name(), atom->name());
|
||||
vector<java_type_t> nonChainedSignature;
|
||||
if (get_non_chained_node(atom, &nonChainedAtomDecl, &nonChainedSignature)) {
|
||||
auto it = atoms->non_chained_signatures_to_modules.find(signature);
|
||||
auto it = atoms->non_chained_signatures_to_modules.find(nonChainedSignature);
|
||||
if (it == atoms->non_chained_signatures_to_modules.end()) {
|
||||
set<string> modules_non_chained;
|
||||
if (atomDecl.hasModule) {
|
||||
|
||||
@@ -73,7 +73,7 @@ static int write_java_methods(
|
||||
java_type_name(chainField.javaType), chainField.name.c_str());
|
||||
}
|
||||
} else if (*arg == JAVA_TYPE_KEY_VALUE_PAIR) {
|
||||
fprintf(out, ", SparseArray<Object> valueMap");
|
||||
fprintf(out, ", android.util.SparseArray<Object> valueMap");
|
||||
} else {
|
||||
fprintf(out, ", %s arg%d", java_type_name(*arg), argIndex);
|
||||
}
|
||||
@@ -142,16 +142,16 @@ static int write_java_methods(
|
||||
fprintf(out,
|
||||
"%s final int count = valueMap.size();\n", indent.c_str());
|
||||
fprintf(out,
|
||||
"%s SparseIntArray intMap = null;\n",
|
||||
"%s android.util.SparseIntArray intMap = null;\n",
|
||||
indent.c_str());
|
||||
fprintf(out,
|
||||
"%s SparseLongArray longMap = null;\n",
|
||||
"%s android.util.SparseLongArray longMap = null;\n",
|
||||
indent.c_str());
|
||||
fprintf(out,
|
||||
"%s SparseArray<String> stringMap = null;\n",
|
||||
"%s android.util.SparseArray<String> stringMap = null;\n",
|
||||
indent.c_str());
|
||||
fprintf(out,
|
||||
"%s SparseArray<Float> floatMap = null;\n",
|
||||
"%s android.util.SparseArray<Float> floatMap = null;\n",
|
||||
indent.c_str());
|
||||
fprintf(out,
|
||||
"%s for (int i = 0; i < count; i++) {\n", indent.c_str());
|
||||
@@ -165,7 +165,7 @@ static int write_java_methods(
|
||||
fprintf(out,
|
||||
"%s if (null == intMap) {\n", indent.c_str());
|
||||
fprintf(out,
|
||||
"%s intMap = new SparseIntArray();\n", indent.c_str());
|
||||
"%s intMap = new android.util.SparseIntArray();\n", indent.c_str());
|
||||
fprintf(out,
|
||||
"%s }\n", indent.c_str());
|
||||
fprintf(out,
|
||||
@@ -175,7 +175,7 @@ static int write_java_methods(
|
||||
fprintf(out,
|
||||
"%s if (null == longMap) {\n", indent.c_str());
|
||||
fprintf(out,
|
||||
"%s longMap = new SparseLongArray();\n", indent.c_str());
|
||||
"%s longMap = new android.util.SparseLongArray();\n", indent.c_str());
|
||||
fprintf(out,
|
||||
"%s }\n", indent.c_str());
|
||||
fprintf(out,
|
||||
@@ -185,7 +185,7 @@ static int write_java_methods(
|
||||
fprintf(out,
|
||||
"%s if (null == stringMap) {\n", indent.c_str());
|
||||
fprintf(out,
|
||||
"%s stringMap = new SparseArray<>();\n", indent.c_str());
|
||||
"%s stringMap = new android.util.SparseArray<>();\n", indent.c_str());
|
||||
fprintf(out,
|
||||
"%s }\n", indent.c_str());
|
||||
fprintf(out,
|
||||
@@ -195,7 +195,7 @@ static int write_java_methods(
|
||||
fprintf(out,
|
||||
"%s if (null == floatMap) {\n", indent.c_str());
|
||||
fprintf(out,
|
||||
"%s floatMap = new SparseArray<>();\n", indent.c_str());
|
||||
"%s floatMap = new android.util.SparseArray<>();\n", indent.c_str());
|
||||
fprintf(out,
|
||||
"%s }\n", indent.c_str());
|
||||
fprintf(out,
|
||||
@@ -253,7 +253,8 @@ static int write_java_methods(
|
||||
|
||||
int write_stats_log_java(FILE* out, const Atoms& atoms, const AtomDecl &attributionDecl,
|
||||
const string& moduleName, const string& javaClass,
|
||||
const string& javaPackage, const bool supportQ) {
|
||||
const string& javaPackage, const bool supportQ,
|
||||
const bool supportWorkSource) {
|
||||
// Print prelude
|
||||
fprintf(out, "// This file is autogenerated\n");
|
||||
fprintf(out, "\n");
|
||||
@@ -265,25 +266,9 @@ int write_stats_log_java(FILE* out, const Atoms& atoms, const AtomDecl &attribut
|
||||
fprintf(out, "import android.os.SystemClock;\n");
|
||||
}
|
||||
|
||||
if (DEFAULT_MODULE_NAME == moduleName) {
|
||||
// Mainline modules don't use WorkSource logging.
|
||||
fprintf(out, "import android.os.WorkSource;\n");
|
||||
|
||||
// SparseArray is used for writing KeyValuePairs; not supported for Mainline modules.
|
||||
fprintf(out, "import android.util.SparseArray;\n");
|
||||
fprintf(out, "import android.util.SparseIntArray;\n");
|
||||
fprintf(out, "import android.util.SparseLongArray;\n");
|
||||
}
|
||||
|
||||
fprintf(out, "import android.util.StatsEvent;\n");
|
||||
fprintf(out, "import android.util.StatsLog;\n");
|
||||
|
||||
if (DEFAULT_MODULE_NAME == moduleName) {
|
||||
// List is used for WorkSource writing. Only needed for default module.
|
||||
fprintf(out, "\n");
|
||||
fprintf(out, "import java.util.List;\n");
|
||||
}
|
||||
|
||||
fprintf(out, "\n");
|
||||
fprintf(out, "\n");
|
||||
fprintf(out, "/**\n");
|
||||
@@ -305,7 +290,7 @@ int write_stats_log_java(FILE* out, const Atoms& atoms, const AtomDecl &attribut
|
||||
out, atoms.signatures_to_modules, attributionDecl, moduleName, supportQ);
|
||||
errors += write_java_non_chained_methods(
|
||||
out, atoms.non_chained_signatures_to_modules, moduleName);
|
||||
if (DEFAULT_MODULE_NAME == moduleName) {
|
||||
if (supportWorkSource) {
|
||||
errors += write_java_work_source_methods(out, atoms.signatures_to_modules, moduleName);
|
||||
}
|
||||
|
||||
|
||||
@@ -31,8 +31,9 @@ namespace stats_log_api_gen {
|
||||
using namespace std;
|
||||
|
||||
int write_stats_log_java(FILE* out, const Atoms& atoms, const AtomDecl &attributionDecl,
|
||||
const string& moduleName, const string& javaClass,
|
||||
const string& javaPackage, const bool supportQ);
|
||||
const string& moduleName, const string& javaClass,
|
||||
const string& javaPackage, const bool supportQ,
|
||||
const bool supportWorkSource);
|
||||
|
||||
} // namespace stats_log_api_gen
|
||||
} // namespace android
|
||||
|
||||
@@ -382,7 +382,7 @@ static void write_java_method(
|
||||
java_type_name(chainField.javaType), chainField.name.c_str());
|
||||
}
|
||||
} else if (*arg == JAVA_TYPE_KEY_VALUE_PAIR) {
|
||||
fprintf(out, ", SparseArray<Object> value_map");
|
||||
fprintf(out, ", android.util.SparseArray<Object> value_map");
|
||||
} else {
|
||||
fprintf(out, ", %s arg%d", java_type_name(*arg), argIndex);
|
||||
}
|
||||
@@ -393,16 +393,13 @@ static void write_java_method(
|
||||
}
|
||||
}
|
||||
|
||||
int write_stats_log_java_q(FILE* out, const Atoms& atoms, const AtomDecl &attributionDecl) {
|
||||
int write_stats_log_java_q(FILE* out, const Atoms& atoms, const AtomDecl &attributionDecl,
|
||||
const bool supportWorkSource) {
|
||||
// Print prelude
|
||||
fprintf(out, "// This file is autogenerated\n");
|
||||
fprintf(out, "\n");
|
||||
fprintf(out, "package android.util;\n");
|
||||
fprintf(out, "\n");
|
||||
fprintf(out, "import android.os.WorkSource;\n");
|
||||
fprintf(out, "import android.util.SparseArray;\n");
|
||||
fprintf(out, "import java.util.List;\n");
|
||||
fprintf(out, "\n");
|
||||
fprintf(out, "\n");
|
||||
fprintf(out, "/**\n");
|
||||
fprintf(out, " * API For logging statistics events.\n");
|
||||
@@ -418,16 +415,19 @@ int write_stats_log_java_q(FILE* out, const Atoms& atoms, const AtomDecl &attrib
|
||||
write_java_method(out, "write", atoms.signatures_to_modules, attributionDecl);
|
||||
write_java_method(out, "write_non_chained", atoms.non_chained_signatures_to_modules,
|
||||
attributionDecl);
|
||||
write_java_work_source_methods(out, atoms.signatures_to_modules, DEFAULT_MODULE_NAME);
|
||||
if (supportWorkSource) {
|
||||
write_java_work_source_methods(out, atoms.signatures_to_modules, DEFAULT_MODULE_NAME);
|
||||
}
|
||||
|
||||
fprintf(out, "}\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int write_stats_log_java_q_for_module(FILE* out, const Atoms& atoms, const AtomDecl &attributionDecl,
|
||||
const string& moduleName, const string& javaClass,
|
||||
const string& javaPackage) {
|
||||
int write_stats_log_java_q_for_module(FILE* out, const Atoms& atoms,
|
||||
const AtomDecl &attributionDecl, const string& moduleName,
|
||||
const string& javaClass, const string& javaPackage,
|
||||
const bool supportWorkSource) {
|
||||
// Print prelude
|
||||
fprintf(out, "// This file is autogenerated\n");
|
||||
fprintf(out, "\n");
|
||||
@@ -438,8 +438,6 @@ int write_stats_log_java_q_for_module(FILE* out, const Atoms& atoms, const AtomD
|
||||
fprintf(out, "import android.util.StatsLog;\n");
|
||||
fprintf(out, "import android.os.SystemClock;\n");
|
||||
fprintf(out, "\n");
|
||||
fprintf(out, "import java.util.ArrayList;\n");
|
||||
fprintf(out, "\n");
|
||||
fprintf(out, "\n");
|
||||
fprintf(out, "/**\n");
|
||||
fprintf(out, " * Utility class for logging statistics events.\n");
|
||||
@@ -459,6 +457,9 @@ int write_stats_log_java_q_for_module(FILE* out, const Atoms& atoms, const AtomD
|
||||
moduleName, " ");
|
||||
errors += write_java_non_chained_methods(out, atoms.non_chained_signatures_to_modules,
|
||||
moduleName);
|
||||
if (supportWorkSource) {
|
||||
errors += write_java_work_source_methods(out, atoms.signatures_to_modules, moduleName);
|
||||
}
|
||||
|
||||
fprintf(out, "}\n");
|
||||
|
||||
|
||||
@@ -46,11 +46,12 @@ void write_java_helpers_for_q_schema_methods(
|
||||
const string& indent);
|
||||
|
||||
#if defined(STATS_SCHEMA_LEGACY)
|
||||
int write_stats_log_java_q(FILE* out, const Atoms& atoms, const AtomDecl &attributionDecl);
|
||||
int write_stats_log_java_q(FILE* out, const Atoms& atoms, const AtomDecl &attributionDecl,
|
||||
const bool supportWorkSource);
|
||||
|
||||
int write_stats_log_java_q_for_module(FILE* out, const Atoms& atoms,
|
||||
const AtomDecl &attributionDecl, const string& moduleName, const string& javaClass,
|
||||
const string& javaPackage);
|
||||
const string& javaPackage, const bool supportWorkSource);
|
||||
#endif
|
||||
} // namespace stats_log_api_gen
|
||||
} // namespace android
|
||||
|
||||
@@ -512,6 +512,7 @@ print_usage()
|
||||
fprintf(stderr, " Optional for Java with module.\n");
|
||||
fprintf(stderr, " Default is \"StatsLogInternal\"\n");
|
||||
fprintf(stderr, " --supportQ Include support for Android Q.\n");
|
||||
fprintf(stderr, " --worksource Include support for logging WorkSource objects.\n");
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -534,6 +535,7 @@ run(int argc, char const*const* argv)
|
||||
string javaPackage = DEFAULT_JAVA_PACKAGE;
|
||||
string javaClass = DEFAULT_JAVA_CLASS;
|
||||
bool supportQ = false;
|
||||
bool supportWorkSource = false;
|
||||
|
||||
int index = 1;
|
||||
while (index < argc) {
|
||||
@@ -626,6 +628,8 @@ run(int argc, char const*const* argv)
|
||||
atomsInfoCppHeaderImport = argv[index];
|
||||
} else if (0 == strcmp("--supportQ", argv[index])) {
|
||||
supportQ = true;
|
||||
} else if (0 == strcmp("--worksource", argv[index])) {
|
||||
supportWorkSource = true;
|
||||
}
|
||||
|
||||
index++;
|
||||
@@ -728,19 +732,15 @@ run(int argc, char const*const* argv)
|
||||
fprintf(stderr, "Unable to open file for write: %s\n", javaFilename.c_str());
|
||||
return 1;
|
||||
}
|
||||
// If this is for a specific module, the java package must also be provided.
|
||||
if (moduleName != DEFAULT_MODULE_NAME && javaPackage== DEFAULT_JAVA_PACKAGE) {
|
||||
fprintf(stderr, "Must supply --javaPackage if supplying a specific module\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
#if defined(STATS_SCHEMA_LEGACY)
|
||||
if (moduleName == DEFAULT_MODULE_NAME) {
|
||||
errorCount = android::stats_log_api_gen::write_stats_log_java_q(
|
||||
out, atoms, attributionDecl);
|
||||
out, atoms, attributionDecl, supportWorkSource);
|
||||
} else {
|
||||
errorCount = android::stats_log_api_gen::write_stats_log_java_q_for_module(
|
||||
out, atoms, attributionDecl, moduleName, javaClass, javaPackage);
|
||||
out, atoms, attributionDecl, moduleName, javaClass, javaPackage,
|
||||
supportWorkSource);
|
||||
|
||||
}
|
||||
#else
|
||||
@@ -749,7 +749,8 @@ run(int argc, char const*const* argv)
|
||||
javaPackage = "android.util";
|
||||
}
|
||||
errorCount = android::stats_log_api_gen::write_stats_log_java(
|
||||
out, atoms, attributionDecl, moduleName, javaClass, javaPackage, supportQ);
|
||||
out, atoms, attributionDecl, moduleName, javaClass, javaPackage, supportQ,
|
||||
supportWorkSource);
|
||||
#endif
|
||||
|
||||
fclose(out);
|
||||
|
||||
@@ -334,7 +334,7 @@ void write_java_usage(FILE* out, const string& method_name, const string& atom_c
|
||||
if (field->javaType == JAVA_TYPE_ATTRIBUTION_CHAIN) {
|
||||
fprintf(out, ", android.os.WorkSource workSource");
|
||||
} else if (field->javaType == JAVA_TYPE_KEY_VALUE_PAIR) {
|
||||
fprintf(out, ", SparseArray<Object> value_map");
|
||||
fprintf(out, ", android.util.SparseArray<Object> value_map");
|
||||
} else if (field->javaType == JAVA_TYPE_BYTE_ARRAY) {
|
||||
fprintf(out, ", byte[] %s", field->name.c_str());
|
||||
} else {
|
||||
@@ -442,7 +442,7 @@ int write_java_work_source_methods(
|
||||
for (vector<java_type_t>::const_iterator arg = signature.begin();
|
||||
arg != signature.end(); arg++) {
|
||||
if (*arg == JAVA_TYPE_ATTRIBUTION_CHAIN) {
|
||||
fprintf(out, ", WorkSource ws");
|
||||
fprintf(out, ", android.os.WorkSource ws");
|
||||
} else {
|
||||
fprintf(out, ", %s arg%d", java_type_name(*arg), argIndex);
|
||||
}
|
||||
@@ -464,9 +464,10 @@ int write_java_work_source_methods(
|
||||
fprintf(out, " }\n"); // close for-loop
|
||||
|
||||
// write() component.
|
||||
fprintf(out, " List<WorkSource.WorkChain> workChains = ws.getWorkChains();\n");
|
||||
fprintf(out, " java.util.List<android.os.WorkSource.WorkChain> workChains = "
|
||||
"ws.getWorkChains();\n");
|
||||
fprintf(out, " if (workChains != null) {\n");
|
||||
fprintf(out, " for (WorkSource.WorkChain wc : workChains) {\n");
|
||||
fprintf(out, " for (android.os.WorkSource.WorkChain wc : workChains) {\n");
|
||||
fprintf(out, " write(code");
|
||||
for (int argIndex = 1; argIndex <= argIndexMax; argIndex++) {
|
||||
if (argIndex == attributionArg) {
|
||||
|
||||
Reference in New Issue
Block a user