summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chenjie Yu <cjyu@google.com> 2018-09-11 22:00:53 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2018-09-11 22:00:53 +0000
commit14f5e6c5bd1afed1807123ec6207dd67a4c1d27f (patch)
tree8f24215248dbeb72bf391a6ff901976e9caf31d7
parenta1d17b4d9990b31c7002dd4ca3f3a03eb99b767e (diff)
parent159e4f8f461097a2dfffb545f46734dd7d9610f3 (diff)
Merge "allow use of atom definition outside of atoms.proto in pulled atoms"
-rw-r--r--cmds/statsd/Android.bp1
-rw-r--r--cmds/statsd/src/atoms.proto2
-rw-r--r--tools/stats_log_api_gen/Collation.cpp19
-rw-r--r--tools/stats_log_api_gen/Collation.h2
-rw-r--r--tools/stats_log_api_gen/main.cpp2
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;