diff options
| author | 2018-09-11 22:00:53 +0000 | |
|---|---|---|
| committer | 2018-09-11 22:00:53 +0000 | |
| commit | 14f5e6c5bd1afed1807123ec6207dd67a4c1d27f (patch) | |
| tree | 8f24215248dbeb72bf391a6ff901976e9caf31d7 | |
| parent | a1d17b4d9990b31c7002dd4ca3f3a03eb99b767e (diff) | |
| parent | 159e4f8f461097a2dfffb545f46734dd7d9610f3 (diff) | |
Merge "allow use of atom definition outside of atoms.proto in pulled atoms"
| -rw-r--r-- | cmds/statsd/Android.bp | 1 | ||||
| -rw-r--r-- | cmds/statsd/src/atoms.proto | 2 | ||||
| -rw-r--r-- | tools/stats_log_api_gen/Collation.cpp | 19 | ||||
| -rw-r--r-- | tools/stats_log_api_gen/Collation.h | 2 | ||||
| -rw-r--r-- | tools/stats_log_api_gen/main.cpp | 2 |
5 files changed, 19 insertions, 7 deletions
diff --git a/cmds/statsd/Android.bp b/cmds/statsd/Android.bp index 3fae586725ec..94203f4feccd 100644 --- a/cmds/statsd/Android.bp +++ b/cmds/statsd/Android.bp @@ -46,6 +46,7 @@ cc_library_host_shared { // ==== java proto device library (for test only) ============================== java_library { name: "statsdprotolite", + no_framework_libs: true, proto: { type: "lite", include_dirs: ["external/protobuf/src"], diff --git a/cmds/statsd/src/atoms.proto b/cmds/statsd/src/atoms.proto index 8f3ad9df2370..d117f390705d 100644 --- a/cmds/statsd/src/atoms.proto +++ b/cmds/statsd/src/atoms.proto @@ -30,6 +30,7 @@ import "frameworks/base/core/proto/android/telecomm/enums.proto"; import "frameworks/base/core/proto/android/telephony/enums.proto"; import "frameworks/base/core/proto/android/view/enums.proto"; import "frameworks/base/proto/src/stats_enums.proto"; +import "frameworks/base/core/proto/android/service/procstats.proto"; /** * The master atom class. This message defines all of the available @@ -165,6 +166,7 @@ message Atom { DirectoryUsage directory_usage = 10026; AppSize app_size = 10027; CategorySize category_size = 10028; + android.service.procstats.ProcessStatsSectionProto proc_stats = 10029; } // DO NOT USE field numbers above 100,000 in AOSP. Field numbers above diff --git a/tools/stats_log_api_gen/Collation.cpp b/tools/stats_log_api_gen/Collation.cpp index f294728860ae..4245700ed90d 100644 --- a/tools/stats_log_api_gen/Collation.cpp +++ b/tools/stats_log_api_gen/Collation.cpp @@ -195,9 +195,11 @@ int collate_atom(const Descriptor *atom, AtomDecl *atomDecl, print_error(field, "Unkown type for field: %s\n", field->name().c_str()); errorCount++; continue; - } else if (javaType == JAVA_TYPE_OBJECT) { + } else if (javaType == JAVA_TYPE_OBJECT && + atomDecl->code < PULL_ATOM_START_ID) { // Allow attribution chain, but only at position 1. - print_error(field, "Message type not allowed for field: %s\n", + print_error(field, + "Message type not allowed for field in pushed atoms: %s\n", field->name().c_str()); errorCount++; continue; @@ -233,12 +235,19 @@ int collate_atom(const Descriptor *atom, AtomDecl *atomDecl, java_type_t javaType = java_type(field); AtomField atField(field->name(), javaType); + // Generate signature for pushed atoms + if (atomDecl->code < PULL_ATOM_START_ID) { + if (javaType == JAVA_TYPE_ENUM) { + // All enums are treated as ints when it comes to function signatures. + signature->push_back(JAVA_TYPE_INT); + collate_enums(*field->enum_type(), &atField); + } else { + signature->push_back(javaType); + } + } if (javaType == JAVA_TYPE_ENUM) { // All enums are treated as ints when it comes to function signatures. - signature->push_back(JAVA_TYPE_INT); collate_enums(*field->enum_type(), &atField); - } else { - signature->push_back(javaType); } atomDecl->fields.push_back(atField); diff --git a/tools/stats_log_api_gen/Collation.h b/tools/stats_log_api_gen/Collation.h index ccdd1458f656..31b8b07472cc 100644 --- a/tools/stats_log_api_gen/Collation.h +++ b/tools/stats_log_api_gen/Collation.h @@ -34,6 +34,8 @@ using std::vector; using google::protobuf::Descriptor; using google::protobuf::FieldDescriptor; +const int PULL_ATOM_START_ID = 10000; + /** * The types for atom parameters. */ diff --git a/tools/stats_log_api_gen/main.cpp b/tools/stats_log_api_gen/main.cpp index 83a66312b425..991547916919 100644 --- a/tools/stats_log_api_gen/main.cpp +++ b/tools/stats_log_api_gen/main.cpp @@ -18,8 +18,6 @@ using namespace std; namespace android { namespace stats_log_api_gen { -const int PULL_ATOM_START_ID = 1000; - int maxPushedAtomId = 2; using android::os::statsd::Atom; |