Perfprofd: Remove ConfigReader from binder interface
Remove reliance on ConfigReader for defaults.
Test: mmma system/extras/perfprofd
Change-Id: If580d30044a4ff2e1206b8ad2529f7dd9889292a
diff --git a/perfprofd/binder_interface/perfprofd_binder.cc b/perfprofd/binder_interface/perfprofd_binder.cc
index 808c365..34d6a03 100644
--- a/perfprofd/binder_interface/perfprofd_binder.cc
+++ b/perfprofd/binder_interface/perfprofd_binder.cc
@@ -45,7 +45,6 @@
#include "perf_profile.pb.h"
#include "config.h"
-#include "configreader.h"
#include "perfprofdcore.h"
namespace android {
@@ -85,6 +84,15 @@
return true;
}
+ // Operator= to simplify setting the config values. This will retain the
+ // original mutex, condition-variable etc.
+ BinderConfig& operator=(const BinderConfig& rhs) {
+ // Copy base fields.
+ *static_cast<Config*>(this) = static_cast<const Config&>(rhs);
+
+ return *this;
+ }
+
private:
std::mutex mutex_;
std::condition_variable cv_;
@@ -180,8 +188,8 @@
Status PerfProfdNativeService::startProfiling(int32_t profilingDuration,
int32_t profilingInterval,
int32_t iterations) {
- auto config_fn = [&](Config& config) {
- ConfigReader().FillConfig(&config); // Create a default config.
+ auto config_fn = [&](BinderConfig& config) {
+ config = BinderConfig(); // Reset to a default config.
config.sample_duration_in_s = static_cast<uint32_t>(profilingDuration);
config.collection_interval_in_s = static_cast<uint32_t>(profilingInterval);
@@ -229,8 +237,8 @@
if (!fn(proto_config)) {
return binder::Status::fromExceptionCode(2);
}
- auto config_fn = [&proto_config](Config& config) {
- ConfigReader().FillConfig(&config); // Create a default config.
+ auto config_fn = [&proto_config](BinderConfig& config) {
+ config = BinderConfig(); // Reset to a default config.
// Copy proto values.
#define CHECK_AND_COPY_FROM_PROTO(name) \