120cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair/* 220cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair * Copyright (C) 2018 The Android Open Source Project 320cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair * 420cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair * Licensed under the Apache License, Version 2.0 (the "License"); 520cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair * you may not use this file except in compliance with the License. 620cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair * You may obtain a copy of the License at 720cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair * 820cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair * http://www.apache.org/licenses/LICENSE-2.0 920cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair * 1020cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair * Unless required by applicable law or agreed to in writing, software 1120cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair * distributed under the License is distributed on an "AS IS" BASIS, 1220cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1320cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair * See the License for the specific language governing permissions and 1420cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair * limitations under the License. 1520cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair */ 1620cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair 1720cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair#define LOG_TAG "dumpstate" 1820cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair 1920cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair#include "DumpstateSectionReporter.h" 2020cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair 2120cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nairnamespace android { 2220cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nairnamespace os { 2320cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nairnamespace dumpstate { 2420cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair 2520cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu NairDumpstateSectionReporter::DumpstateSectionReporter(const std::string& title, 2620cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair sp<android::os::IDumpstateListener> listener, 2720cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair bool sendReport) 2820cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair : title_(title), listener_(listener), sendReport_(sendReport), status_(OK), size_(-1) { 2920cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair started_ = std::chrono::steady_clock::now(); 3020cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair} 3120cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair 3220cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu NairDumpstateSectionReporter::~DumpstateSectionReporter() { 3320cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair if ((listener_ != nullptr) && (sendReport_)) { 3420cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair auto elapsed = std::chrono::duration_cast<std::chrono::milliseconds>( 3520cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair std::chrono::steady_clock::now() - started_); 3620cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair listener_->onSectionComplete(title_, status_, size_, (int32_t)elapsed.count()); 3720cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair } 3820cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair} 3920cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair 4020cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair} // namespace dumpstate 4120cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair} // namespace os 4220cf5036c1f373c1acfbb95295f118b7ff6c2227Vishnu Nair} // namespace android 43