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

Commit f9aa8d04 authored by Ruchir Rastogi's avatar Ruchir Rastogi
Browse files

Delete StatsCompanionServicePuller

Since pulls now go through StatsPullAtomService, instead of
StatsCompanionService, we no longer need the StatsCompanionServicePuller
class.

Test: m -j
Change-Id: Id7050fbda1118808aade0754747248b21c11b814
parent d428dfbd
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -16,9 +16,6 @@

package android.os;

import android.os.IPullAtomCallback;
import android.os.StatsLogEventWrapper;

/**
  * Binder interface to communicate with the Java-based statistics service helper.
  * {@hide}
@@ -62,9 +59,6 @@ interface IStatsCompanionService {
    /** Cancel any alarm for the purpose of subscriber triggering. */
    oneway void cancelAlarmForSubscriberTriggering();

    /** Pull the specified data. Results will be sent to statsd when complete. */
    StatsLogEventWrapper[] pullData(int pullCode);

    /** Tells StatsCompaionService to grab the uid map snapshot and send it to statsd. */
    oneway void triggerUidSnapshot();
}
+0 −21
Original line number Diff line number Diff line
@@ -714,27 +714,6 @@ public class StatsCompanionService extends IStatsCompanionService.Stub {
        }
    }

    /**
     * Pulls various data.
     */
    @Override // Binder call
    public StatsLogEventWrapper[] pullData(int tagId) {
        StatsCompanion.enforceStatsCompanionPermission(mContext);
        if (DEBUG) {
            Slog.d(TAG, "Pulling " + tagId);
        }
        List<StatsLogEventWrapper> ret = new ArrayList<>();
        long elapsedNanos = SystemClock.elapsedRealtimeNanos();
        long wallClockNanos = SystemClock.currentTimeMicro() * 1000L;
        switch (tagId) {

            default:
                Slog.w(TAG, "No such tagId data as " + tagId);
                return null;
        }
        return ret.toArray(new StatsLogEventWrapper[ret.size()]);
    }

    @Override // Binder call
    public void statsdReady() {
        StatsCompanion.enforceStatsCompanionPermission(mContext);
+0 −1
Original line number Diff line number Diff line
@@ -73,7 +73,6 @@ cc_defaults {
        "src/external/puller_util.cpp",
        "src/external/ResourceHealthManagerPuller.cpp",
        "src/external/StatsCallbackPuller.cpp",
        "src/external/StatsCompanionServicePuller.cpp",
        "src/external/StatsPuller.cpp",
        "src/external/StatsPullerManager.cpp",
        "src/external/SubsystemSleepStatePuller.cpp",
+0 −78
Original line number Diff line number Diff line
/*
 * Copyright (C) 2017 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.
 */

#define DEBUG false
#include "Log.h"

#include <android/os/IStatsCompanionService.h>
#include <binder/IPCThreadState.h>
#include <private/android_filesystem_config.h>
#include "../stats_log_util.h"
#include "../statscompanion_util.h"
#include "StatsCompanionServicePuller.h"

using namespace android;
using namespace android::base;
using namespace android::binder;
using namespace android::os;
using std::make_shared;
using std::shared_ptr;
using std::vector;

namespace android {
namespace os {
namespace statsd {

// The reading and parsing are implemented in Java. It is not difficult to port over. But for now
// let StatsCompanionService handle that and send the data back.
StatsCompanionServicePuller::StatsCompanionServicePuller(int tagId) : StatsPuller(tagId) {
}

void StatsCompanionServicePuller::SetStatsCompanionService(
        sp<IStatsCompanionService> statsCompanionService) {
    AutoMutex _l(mStatsCompanionServiceLock);
    sp<IStatsCompanionService> tmpForLock = mStatsCompanionService;
    mStatsCompanionService = statsCompanionService;
}

bool StatsCompanionServicePuller::PullInternal(vector<shared_ptr<LogEvent> >* data) {
    sp<IStatsCompanionService> statsCompanionServiceCopy = mStatsCompanionService;
    if (statsCompanionServiceCopy != nullptr) {
        vector<StatsLogEventWrapper> returned_value;
        Status status = statsCompanionServiceCopy->pullData(mTagId, &returned_value);
        if (!status.isOk()) {
            ALOGW("StatsCompanionServicePuller::pull failed for %d", mTagId);
            StatsdStats::getInstance().noteStatsCompanionPullFailed(mTagId);
            if (status.exceptionCode() == Status::Exception::EX_TRANSACTION_FAILED) {
                StatsdStats::getInstance().noteStatsCompanionPullBinderTransactionFailed(mTagId);
            }
            return false;
        }
        data->clear();
        for (const StatsLogEventWrapper& it : returned_value) {
            LogEvent::createLogEvents(it, *data);
        }
        VLOG("StatsCompanionServicePuller::pull succeeded for %d", mTagId);
        return true;
    } else {
        ALOGW("statsCompanion not found!");
        return false;
    }
}

}  // namespace statsd
}  // namespace os
}  // namespace android
+0 −40
Original line number Diff line number Diff line
/*
 * Copyright (C) 2017 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 <utils/String16.h>
#include "StatsPuller.h"

namespace android {
namespace os {
namespace statsd {

class StatsCompanionServicePuller : public StatsPuller {
public:
    explicit StatsCompanionServicePuller(int tagId);

    void SetStatsCompanionService(sp<IStatsCompanionService> statsCompanionService) override;

private:
    Mutex mStatsCompanionServiceLock;
    sp<IStatsCompanionService> mStatsCompanionService = nullptr;
    bool PullInternal(vector<std::shared_ptr<LogEvent> >* data) override;
};

}  // namespace statsd
}  // namespace os
}  // namespace android
Loading