Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9e0f728f authored by Muhammad Qureshi's avatar Muhammad Qureshi
Browse files

Remove libstatslog from libstatsmetadata

Instead of relying on the constants in libstatslog, hardcode them in
atoms_info to get rid of the dependency on libstatslog

New generated atoms_info.cpp:
https://paste.googleplex.com/5779947622760448

Bug: 150417465
Test: m libstatsmetadata
Change-Id: I954c963f1883f889053b63d308c648548de71e56
parent f8460f70
Loading
Loading
Loading
Loading
+0 −4
Original line number Original line Diff line number Diff line
@@ -165,10 +165,6 @@ cc_library_static {
    export_generated_headers: [
    export_generated_headers: [
        "atoms_info.h",
        "atoms_info.h",
    ],
    ],
    shared_libs: [
        "libcutils",
        "libstatslog",
    ],
    apex_available: [
    apex_available: [
        //TODO(b/149782403): Remove this once statsd no longer links against libstatsmetadata
        //TODO(b/149782403): Remove this once statsd no longer links against libstatsmetadata
        "com.android.os.statsd",
        "com.android.os.statsd",
+27 −22
Original line number Original line Diff line number Diff line
@@ -58,19 +58,25 @@ static void write_atoms_info_header_body(FILE* out, const Atoms& atoms) {
}
}


static void write_atoms_info_cpp_body(FILE* out, const Atoms& atoms) {
static void write_atoms_info_cpp_body(FILE* out, const Atoms& atoms) {
    std::set<string> kTruncatingAtomNames = {"mobile_radio_power_state_changed",
    std::set<string> kTruncatingAtomNames = {
            "mobile_radio_power_state_changed",
            "audio_state_changed",
            "audio_state_changed",
            "call_state_changed",
            "call_state_changed",
            "phone_signal_strength_changed",
            "phone_signal_strength_changed",
            "mobile_bytes_transfer_by_fg_bg",
            "mobile_bytes_transfer_by_fg_bg",
                                                 "mobile_bytes_transfer"};
            "mobile_bytes_transfer"
    };
    fprintf(out,
    fprintf(out,
            "const std::set<int> "
            "const std::set<int> "
            "AtomsInfo::kTruncatingTimestampAtomBlackList = {\n");
            "AtomsInfo::kTruncatingTimestampAtomBlackList = {\n");
    for (set<string>::const_iterator blacklistedAtom = kTruncatingAtomNames.begin();
    for (set<AtomDecl>::const_iterator atom = atoms.decls.begin();
         blacklistedAtom != kTruncatingAtomNames.end(); blacklistedAtom++) {
         atom != atoms.decls.end(); atom++) {
            fprintf(out, " %s,\n", make_constant_name(*blacklistedAtom).c_str());
        if (kTruncatingAtomNames.find(atom->name) != kTruncatingAtomNames.end()) {
            const string constant = make_constant_name(atom->name);
            fprintf(out, "    %d, // %s\n", atom->code, constant.c_str());
        }
        }
    }

    fprintf(out, "};\n");
    fprintf(out, "};\n");
    fprintf(out, "\n");
    fprintf(out, "\n");


@@ -81,8 +87,8 @@ static void write_atoms_info_cpp_body(FILE* out, const Atoms& atoms) {
        for (vector<AtomField>::const_iterator field = atom->fields.begin();
        for (vector<AtomField>::const_iterator field = atom->fields.begin();
             field != atom->fields.end(); field++) {
             field != atom->fields.end(); field++) {
            if (field->javaType == JAVA_TYPE_ATTRIBUTION_CHAIN) {
            if (field->javaType == JAVA_TYPE_ATTRIBUTION_CHAIN) {
                string constant = make_constant_name(atom->name);
                const string constant = make_constant_name(atom->name);
                fprintf(out, " %s,\n", constant.c_str());
                fprintf(out, "    %d, // %s\n", atom->code, constant.c_str());
                break;
                break;
            }
            }
        }
        }
@@ -96,8 +102,8 @@ static void write_atoms_info_cpp_body(FILE* out, const Atoms& atoms) {
    for (set<AtomDecl>::const_iterator atom = atoms.decls.begin();
    for (set<AtomDecl>::const_iterator atom = atoms.decls.begin();
         atom != atoms.decls.end(); atom++) {
         atom != atoms.decls.end(); atom++) {
        if (atom->whitelisted) {
        if (atom->whitelisted) {
            string constant = make_constant_name(atom->name);
            const string constant = make_constant_name(atom->name);
            fprintf(out, " %s,\n", constant.c_str());
            fprintf(out, "    %d, // %s\n", atom->code, constant.c_str());
        }
        }
    }
    }


@@ -115,8 +121,8 @@ static void write_atoms_info_cpp_body(FILE* out, const Atoms& atoms) {
                "\n    // Adding uid field for atom "
                "\n    // Adding uid field for atom "
                "(%d)%s\n",
                "(%d)%s\n",
                atom->code, atom->name.c_str());
                atom->code, atom->name.c_str());
        fprintf(out, "    uidField[static_cast<int>(%s)] = %d;\n",
        fprintf(out, "    uidField[%d /* %s */] = %d;\n",
                make_constant_name(atom->name).c_str(), atom->uidField);
                atom->code, make_constant_name(atom->name).c_str(), atom->uidField);
    }
    }


    fprintf(out, "    return uidField;\n");
    fprintf(out, "    return uidField;\n");
@@ -140,8 +146,8 @@ static void write_atoms_info_cpp_body(FILE* out, const Atoms& atoms) {
                "\n    // Adding primary and exclusive fields for atom "
                "\n    // Adding primary and exclusive fields for atom "
                "(%d)%s\n",
                "(%d)%s\n",
                atom->code, atom->name.c_str());
                atom->code, atom->name.c_str());
        fprintf(out, "    opt = &(options[static_cast<int>(%s)]);\n",
        fprintf(out, "    opt = &(options[%d /* %s */]);\n",
                make_constant_name(atom->name).c_str());
                atom->code, make_constant_name(atom->name).c_str());
        fprintf(out, "    opt->primaryFields.reserve(%lu);\n", atom->primaryFields.size());
        fprintf(out, "    opt->primaryFields.reserve(%lu);\n", atom->primaryFields.size());
        for (const auto& field : atom->primaryFields) {
        for (const auto& field : atom->primaryFields) {
            fprintf(out, "    opt->primaryFields.push_back(%d);\n", field);
            fprintf(out, "    opt->primaryFields.push_back(%d);\n", field);
@@ -185,8 +191,8 @@ static void write_atoms_info_cpp_body(FILE* out, const Atoms& atoms) {
                atom->code, atom->name.c_str());
                atom->code, atom->name.c_str());


        for (const auto& field : atom->binaryFields) {
        for (const auto& field : atom->binaryFields) {
            fprintf(out, "    options[static_cast<int>(%s)].push_back(%d);\n",
            fprintf(out, "    options[%d /* %s */].push_back(%d);\n",
                    make_constant_name(atom->name).c_str(), field);
                    atom->code, make_constant_name(atom->name).c_str(), field);
        }
        }
    }
    }


@@ -222,12 +228,11 @@ int write_atoms_info_header(FILE* out, const Atoms &atoms, const string& namespa
}
}


int write_atoms_info_cpp(FILE *out, const Atoms &atoms, const string& namespaceStr,
int write_atoms_info_cpp(FILE *out, const Atoms &atoms, const string& namespaceStr,
        const string& importHeader, const string& statslogHeader) {
        const string& importHeader) {
    // Print prelude
    // Print prelude
    fprintf(out, "// This file is autogenerated\n");
    fprintf(out, "// This file is autogenerated\n");
    fprintf(out, "\n");
    fprintf(out, "\n");
    fprintf(out, "#include <%s>\n", importHeader.c_str());
    fprintf(out, "#include <%s>\n", importHeader.c_str());
    fprintf(out, "#include <%s>\n", statslogHeader.c_str());
    fprintf(out, "\n");
    fprintf(out, "\n");


    write_namespace(out, namespaceStr);
    write_namespace(out, namespaceStr);
+1 −1
Original line number Original line Diff line number Diff line
@@ -27,7 +27,7 @@ namespace stats_log_api_gen {
using namespace std;
using namespace std;


int write_atoms_info_cpp(FILE* out, const Atoms& atoms, const string& namespaceStr,
int write_atoms_info_cpp(FILE* out, const Atoms& atoms, const string& namespaceStr,
        const string& importHeader, const string& statslogHeader);
        const string& importHeader);


int write_atoms_info_header(FILE* out, const Atoms& atoms, const string& namespaceStr);
int write_atoms_info_header(FILE* out, const Atoms& atoms, const string& namespaceStr);


+1 −1
Original line number Original line Diff line number Diff line
@@ -682,7 +682,7 @@ run(int argc, char const*const* argv)
            return 1;
            return 1;
        }
        }
        errorCount = android::stats_log_api_gen::write_atoms_info_cpp(
        errorCount = android::stats_log_api_gen::write_atoms_info_cpp(
            out, atoms, cppNamespace, atomsInfoCppHeaderImport, cppHeaderImport);
            out, atoms, cppNamespace, atomsInfoCppHeaderImport);
        fclose(out);
        fclose(out);
    }
    }