1 // 2 // Copyright (C) 2020 The Android Open Source Project 3 // 4 // Licensed under the Apache License, Version 2.0 (the "License"); 5 // you may not use this file except in compliance with the License. 6 // You may obtain a copy of the License at 7 // 8 // http://www.apache.org/licenses/LICENSE-2.0 9 // 10 // Unless required by applicable law or agreed to in writing, software 11 // distributed under the License is distributed on an "AS IS" BASIS, 12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 // See the License for the specific language governing permissions and 14 // limitations under the License. 15 // 16 17 #pragma once 18 19 #include <binder/BinderService.h> 20 #include <binder/Status.h> 21 22 #include "com/android/server/profcollect/BnProfCollectd.h" 23 #include "scheduler.h" 24 25 namespace android { 26 namespace profcollectd { 27 28 class ProfcollectdBinder : public BinderService<ProfcollectdBinder>, 29 public ::com::android::server::profcollect::BnProfCollectd { 30 public: 31 explicit ProfcollectdBinder(); 32 getServiceName()33 static constexpr const char* getServiceName() { return "profcollectd"; } 34 35 binder::Status ReadConfig() override; 36 binder::Status ScheduleCollection() override; 37 binder::Status TerminateCollection() override; 38 binder::Status TraceOnce(const std::string& tag) override; 39 binder::Status ProcessProfile() override; 40 binder::Status GetSupportedProvider(std::string* provider) override; 41 42 protected: 43 inline static std::unique_ptr<ProfcollectdScheduler> Scheduler; 44 }; 45 46 } // namespace profcollectd 47 } // namespace android 48