Loading cmds/statsd/src/atom_field_options.proto +3 −1 Original line number Diff line number Diff line Loading @@ -82,4 +82,6 @@ extend google.protobuf.FieldOptions { optional bool is_uid = 50001 [default = false]; optional LogMode log_mode = 50002 [default = MODE_AUTOMATIC]; optional string log_from_module = 50004; } tools/stats_log_api_gen/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ cc_binary_host { shared_libs: [ "libstats_proto_host", "libprotobuf-cpp-full", "libbase", ], proto: { Loading tools/stats_log_api_gen/Collation.cpp +40 −8 Original line number Diff line number Diff line Loading @@ -48,7 +48,9 @@ AtomDecl::AtomDecl(const AtomDecl& that) primaryFields(that.primaryFields), exclusiveField(that.exclusiveField), uidField(that.uidField), binaryFields(that.binaryFields) {} binaryFields(that.binaryFields), hasModule(that.hasModule), moduleName(that.moduleName) {} AtomDecl::AtomDecl(int c, const string& n, const string& m) :code(c), Loading Loading @@ -375,30 +377,60 @@ int collate_atoms(const Descriptor *descriptor, Atoms *atoms) { const Descriptor *atom = atomField->message_type(); AtomDecl atomDecl(atomField->number(), atomField->name(), atom->name()); if (atomField->options().HasExtension(os::statsd::log_from_module)) { atomDecl.hasModule = true; atomDecl.moduleName = atomField->options().GetExtension(os::statsd::log_from_module); } vector<java_type_t> signature; errorCount += collate_atom(atom, &atomDecl, &signature); if (atomDecl.primaryFields.size() != 0 && atomDecl.exclusiveField == 0) { errorCount++; } atoms->signatures.insert(signature); // Add the signature if does not already exist. auto signature_to_modules_it = atoms->signatures_to_modules.find(signature); if (signature_to_modules_it == atoms->signatures_to_modules.end()) { set<string> modules; if (atomDecl.hasModule) { modules.insert(atomDecl.moduleName); } atoms->signatures_to_modules[signature] = modules; } else { if (atomDecl.hasModule) { signature_to_modules_it->second.insert(atomDecl.moduleName); } } atoms->decls.insert(atomDecl); AtomDecl nonChainedAtomDecl(atomField->number(), atomField->name(), atom->name()); vector<java_type_t> nonChainedSignature; if (get_non_chained_node(atom, &nonChainedAtomDecl, &nonChainedSignature)) { atoms->non_chained_signatures.insert(nonChainedSignature); auto it = atoms->non_chained_signatures_to_modules.find(signature); if (it == atoms->non_chained_signatures_to_modules.end()) { set<string> modules_non_chained; if (atomDecl.hasModule) { modules_non_chained.insert(atomDecl.moduleName); } atoms->non_chained_signatures_to_modules[nonChainedSignature] = modules_non_chained; } else { if (atomDecl.hasModule) { it->second.insert(atomDecl.moduleName); } } atoms->non_chained_decls.insert(nonChainedAtomDecl); } } if (dbg) { printf("signatures = [\n"); for (set<vector<java_type_t>>::const_iterator it = atoms->signatures.begin(); it != atoms->signatures.end(); it++) { for (map<vector<java_type_t>, set<string>>::const_iterator it = atoms->signatures_to_modules.begin(); it != atoms->signatures_to_modules.end(); it++) { printf(" "); for (vector<java_type_t>::const_iterator jt = it->begin(); jt != it->end(); jt++) { for (vector<java_type_t>::const_iterator jt = it->first.begin(); jt != it->first.end(); jt++) { printf(" %d", (int)*jt); } printf("\n"); Loading tools/stats_log_api_gen/Collation.h +5 −2 Original line number Diff line number Diff line Loading @@ -88,6 +88,9 @@ struct AtomDecl { vector<int> binaryFields; bool hasModule = false; string moduleName; AtomDecl(); AtomDecl(const AtomDecl& that); AtomDecl(int code, const string& name, const string& message); Loading @@ -99,10 +102,10 @@ struct AtomDecl { }; struct Atoms { set<vector<java_type_t>> signatures; map<vector<java_type_t>, set<string>> signatures_to_modules; set<AtomDecl> decls; set<AtomDecl> non_chained_decls; set<vector<java_type_t>> non_chained_signatures; map<vector<java_type_t>, set<string>> non_chained_signatures_to_modules; }; /** Loading tools/stats_log_api_gen/main.cpp +262 −133 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
cmds/statsd/src/atom_field_options.proto +3 −1 Original line number Diff line number Diff line Loading @@ -82,4 +82,6 @@ extend google.protobuf.FieldOptions { optional bool is_uid = 50001 [default = false]; optional LogMode log_mode = 50002 [default = MODE_AUTOMATIC]; optional string log_from_module = 50004; }
tools/stats_log_api_gen/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ cc_binary_host { shared_libs: [ "libstats_proto_host", "libprotobuf-cpp-full", "libbase", ], proto: { Loading
tools/stats_log_api_gen/Collation.cpp +40 −8 Original line number Diff line number Diff line Loading @@ -48,7 +48,9 @@ AtomDecl::AtomDecl(const AtomDecl& that) primaryFields(that.primaryFields), exclusiveField(that.exclusiveField), uidField(that.uidField), binaryFields(that.binaryFields) {} binaryFields(that.binaryFields), hasModule(that.hasModule), moduleName(that.moduleName) {} AtomDecl::AtomDecl(int c, const string& n, const string& m) :code(c), Loading Loading @@ -375,30 +377,60 @@ int collate_atoms(const Descriptor *descriptor, Atoms *atoms) { const Descriptor *atom = atomField->message_type(); AtomDecl atomDecl(atomField->number(), atomField->name(), atom->name()); if (atomField->options().HasExtension(os::statsd::log_from_module)) { atomDecl.hasModule = true; atomDecl.moduleName = atomField->options().GetExtension(os::statsd::log_from_module); } vector<java_type_t> signature; errorCount += collate_atom(atom, &atomDecl, &signature); if (atomDecl.primaryFields.size() != 0 && atomDecl.exclusiveField == 0) { errorCount++; } atoms->signatures.insert(signature); // Add the signature if does not already exist. auto signature_to_modules_it = atoms->signatures_to_modules.find(signature); if (signature_to_modules_it == atoms->signatures_to_modules.end()) { set<string> modules; if (atomDecl.hasModule) { modules.insert(atomDecl.moduleName); } atoms->signatures_to_modules[signature] = modules; } else { if (atomDecl.hasModule) { signature_to_modules_it->second.insert(atomDecl.moduleName); } } atoms->decls.insert(atomDecl); AtomDecl nonChainedAtomDecl(atomField->number(), atomField->name(), atom->name()); vector<java_type_t> nonChainedSignature; if (get_non_chained_node(atom, &nonChainedAtomDecl, &nonChainedSignature)) { atoms->non_chained_signatures.insert(nonChainedSignature); auto it = atoms->non_chained_signatures_to_modules.find(signature); if (it == atoms->non_chained_signatures_to_modules.end()) { set<string> modules_non_chained; if (atomDecl.hasModule) { modules_non_chained.insert(atomDecl.moduleName); } atoms->non_chained_signatures_to_modules[nonChainedSignature] = modules_non_chained; } else { if (atomDecl.hasModule) { it->second.insert(atomDecl.moduleName); } } atoms->non_chained_decls.insert(nonChainedAtomDecl); } } if (dbg) { printf("signatures = [\n"); for (set<vector<java_type_t>>::const_iterator it = atoms->signatures.begin(); it != atoms->signatures.end(); it++) { for (map<vector<java_type_t>, set<string>>::const_iterator it = atoms->signatures_to_modules.begin(); it != atoms->signatures_to_modules.end(); it++) { printf(" "); for (vector<java_type_t>::const_iterator jt = it->begin(); jt != it->end(); jt++) { for (vector<java_type_t>::const_iterator jt = it->first.begin(); jt != it->first.end(); jt++) { printf(" %d", (int)*jt); } printf("\n"); Loading
tools/stats_log_api_gen/Collation.h +5 −2 Original line number Diff line number Diff line Loading @@ -88,6 +88,9 @@ struct AtomDecl { vector<int> binaryFields; bool hasModule = false; string moduleName; AtomDecl(); AtomDecl(const AtomDecl& that); AtomDecl(int code, const string& name, const string& message); Loading @@ -99,10 +102,10 @@ struct AtomDecl { }; struct Atoms { set<vector<java_type_t>> signatures; map<vector<java_type_t>, set<string>> signatures_to_modules; set<AtomDecl> decls; set<AtomDecl> non_chained_decls; set<vector<java_type_t>> non_chained_signatures; map<vector<java_type_t>, set<string>> non_chained_signatures_to_modules; }; /** Loading
tools/stats_log_api_gen/main.cpp +262 −133 File changed.Preview size limit exceeded, changes collapsed. Show changes