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

Commit 95cc36ab authored by Vova Sharaienko's avatar Vova Sharaienko Committed by Automerger Merge Worker
Browse files

Merge "[TeX] Introduced Telemetry Express Native Logging Library" am:...

Merge "[TeX] Introduced Telemetry Express Native Logging Library" am: ed20f1ca am: bb6f818d am: f6bdf495

Original change: https://android-review.googlesource.com/c/platform/system/core/+/2388133



Change-Id: I656a1522f0289fb0e9c03400475df41148d9c11f
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 96af1f70 f6bdf495
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
BasedOnStyle: Google
AllowShortIfStatementsOnASingleLine: true
AllowShortFunctionsOnASingleLine: false
AllowShortLoopsOnASingleLine: true
BinPackArguments: true
BinPackParameters: true
ColumnLimit: 100
CommentPragmas: NOLINT:.*
ContinuationIndentWidth: 8
DerivePointerAlignment: false
IndentWidth: 4
PointerAlignment: Left
TabWidth: 4
AccessModifierOffset: -4
IncludeCategories:
  - Regex:    '^"Log\.h"'
    Priority:    -1
+71 −0
Original line number Diff line number Diff line

//
// Copyright (C) 2023 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
package {
    default_applicable_licenses: ["Android-Apache-2.0"],
}

cc_library {
    name: "libexpresslog",
    srcs: [
        "Counter.cpp",
    ],
    cflags: [
        "-DNAMESPACE_FOR_HASH_FUNCTIONS=farmhash",
        "-Wall",
        "-Werror",
    ],
    header_libs: [
        "libtextclassifier_hash_headers",
    ],
    static_libs: [
        "libstatslog_express",
        "libtextclassifier_hash_static",
    ],
    shared_libs: [
        "libbase",
        "libstatssocket",
    ],
    export_include_dirs: ["include"],
}

genrule {
    name: "statslog_express.h",
    tools: ["stats-log-api-gen"],
    cmd: "$(location stats-log-api-gen) --header $(genDir)/statslog_express.h --module expresslog --namespace android,expresslog",
    out: [
        "statslog_express.h",
    ],
}

genrule {
    name: "statslog_express.cpp",
    tools: ["stats-log-api-gen"],
    cmd: "$(location stats-log-api-gen) --cpp $(genDir)/statslog_express.cpp --module expresslog --namespace android,expresslog --importHeader statslog_express.h",
    out: [
        "statslog_express.cpp",
    ],
}

cc_library_static {
    name: "libstatslog_express",
    generated_sources: ["statslog_express.cpp"],
    generated_headers: ["statslog_express.h"],
    export_generated_headers: ["statslog_express.h"],
    shared_libs: [
        "libstatssocket",
    ],
}
+32 −0
Original line number Diff line number Diff line
//
// Copyright (C) 2023 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//

#include "include/Counter.h"

#include <statslog_express.h>
#include <string.h>
#include <utils/hash/farmhash.h>

namespace android {
namespace expresslog {

void Counter::logIncrement(const char* metricName, int64_t amount) {
    const int64_t metricIdHash = farmhash::Fingerprint64(metricName, strlen(metricName));
    stats_write(EXPRESS_EVENT_REPORTED, metricIdHash, amount);
}

}  // namespace expresslog
}  // namespace android
+30 −0
Original line number Diff line number Diff line
//
// Copyright (C) 2023 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//

#pragma once
#include <stdint.h>

namespace android {
namespace expresslog {

/** Counter encapsulates StatsD write API calls */
class Counter final {
public:
    static void logIncrement(const char* metricId, int64_t amount = 1);
};

}  // namespace expresslog
}  // namespace android