thermald: libchrome r860220 uprev
* base/bind_helpers.h is deleted after its content being moved to
base/callback_helpers.h
* base::CallbackListSubscription made stand-alone class
BUG=chromium:1179608
TEST=FEATURES=test emerge-mistral thermald with old and new libchrome
Change-Id: If1f3819b2591783e3e3eb27007ba7ead801d337d
Reviewed-on: https://chrome-internal-review.googlesource.com/c/chromeos/thermald/+/3696362
Tested-by: Grace Cham <hscham@google.com>
Reviewed-by: Qijiang Fan <fqj@google.com>
Commit-Queue: Grace Cham <hscham@google.com>
diff --git a/key_value_publisher.h b/key_value_publisher.h
index addb21f..7341a0e 100644
--- a/key_value_publisher.h
+++ b/key_value_publisher.h
@@ -20,8 +20,10 @@
public:
typedef base::Callback<void(const std::string &, int)>
KeyValuePublisherCallback;
+#if BASE_VER < 860220
typedef base::CallbackList<void(const std::string &, int)>::Subscription
Subscription;
+#endif
KeyValuePublisher() {}
@@ -34,7 +36,12 @@
// Returns a subscription object. The caller must keep a reference to this
// object for the time the subscription should be active. The subscription
// is canceled when the object is deleted.
+#if BASE_VER < 860220
std::unique_ptr<Subscription> Subscribe(const KeyValuePublisherCallback &cb) {
+#else
+ base::CallbackListSubscription Subscribe(
+ const KeyValuePublisherCallback &cb) {
+#endif
return subscribers_.Add(cb);
}
diff --git a/key_value_publisher_unittest.cc b/key_value_publisher_unittest.cc
index 56fa544..452bcec 100644
--- a/key_value_publisher_unittest.cc
+++ b/key_value_publisher_unittest.cc
@@ -8,8 +8,13 @@
#include "gtest/gtest.h"
#include "base/bind.h"
+#if BASE_VER < 860220
#include "base/bind_helpers.h"
+#endif
#include "base/callback.h"
+#if BASE_VER >= 860220
+#include "base/callback_helpers.h"
+#endif
#include "thermald/key_value_publisher.h"
diff --git a/metrics_reporter.h b/metrics_reporter.h
index b5fae2e..5f51303 100644
--- a/metrics_reporter.h
+++ b/metrics_reporter.h
@@ -81,9 +81,15 @@
MetricsLibraryInterface *metrics_lib_;
const base::TimeDelta reporting_period_;
std::unique_ptr<base::RepeatingTimer> timer_;
+#if BASE_VER < 860220
std::unique_ptr<KeyValuePublisher::Subscription> subscription_outputs_;
std::vector<std::unique_ptr<TemperatureMonitorInterface::Subscription>>
temperature_monitor_subscriptions_;
+#else
+ base::CallbackListSubscription subscription_outputs_;
+ std::vector<base::CallbackListSubscription>
+ temperature_monitor_subscriptions_;
+#endif
base::WeakPtrFactory<MetricsReporter> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(MetricsReporter);
diff --git a/mock_temperature_monitor.h b/mock_temperature_monitor.h
index 08ee289..8c54f41 100644
--- a/mock_temperature_monitor.h
+++ b/mock_temperature_monitor.h
@@ -25,7 +25,12 @@
base::Unretained(this)));
}
+#if BASE_VER < 860220
std::unique_ptr<Subscription> Subscribe(const TemperatureMonitorCallback &cb) {
+#else
+ base::CallbackListSubscription Subscribe(
+ const TemperatureMonitorCallback &cb) {
+#endif
// Call mockable Subscribe().
Subscribe();
diff --git a/temperature_monitor_interface.h b/temperature_monitor_interface.h
index 7a2f992..0f25310 100644
--- a/temperature_monitor_interface.h
+++ b/temperature_monitor_interface.h
@@ -22,7 +22,9 @@
class TemperatureMonitorInterface {
public:
typedef base::Callback<void(int)> TemperatureMonitorCallback;
+#if BASE_VER < 860220
typedef base::CallbackList<void(int)>::Subscription Subscription;
+#endif
TemperatureMonitorInterface() {}
virtual ~TemperatureMonitorInterface() {}
@@ -34,7 +36,11 @@
// Returns a subscription object. The caller must keep a reference to this
// object for the time the subscription should be active. The subscription
// is canceled when the object is deleted.
+#if BASE_VER < 860220
virtual std::unique_ptr<Subscription> Subscribe(
+#else
+ virtual base::CallbackListSubscription Subscribe(
+#endif
const TemperatureMonitorCallback &cb) = 0;
private:
diff --git a/temperature_sensor_monitor.cc b/temperature_sensor_monitor.cc
index e55a821..3ed7bbd 100644
--- a/temperature_sensor_monitor.cc
+++ b/temperature_sensor_monitor.cc
@@ -83,7 +83,11 @@
}
}
+#if BASE_VER < 860220
std::unique_ptr<TemperatureMonitorInterface::Subscription>
+#else
+base::CallbackListSubscription
+#endif
TemperatureSensorMonitor::Subscribe(const TemperatureMonitorCallback &cb) {
if (subscribers_.empty()) {
StartSampling();
diff --git a/temperature_sensor_monitor.h b/temperature_sensor_monitor.h
index f665b61..23eaa35 100644
--- a/temperature_sensor_monitor.h
+++ b/temperature_sensor_monitor.h
@@ -41,8 +41,12 @@
std::string name() const;
- std::unique_ptr<TemperatureMonitorInterface::Subscription> Subscribe(
- const TemperatureMonitorCallback &cb);
+#if BASE_VER < 860220
+ std::unique_ptr<TemperatureMonitorInterface::Subscription>
+#else
+ base::CallbackListSubscription
+#endif
+ Subscribe(const TemperatureMonitorCallback &cb);
private:
friend class TemperatureSensorMonitorTest;
diff --git a/temperature_sensor_monitor_unittest.cc b/temperature_sensor_monitor_unittest.cc
index 4900a39..2b14b5d 100644
--- a/temperature_sensor_monitor_unittest.cc
+++ b/temperature_sensor_monitor_unittest.cc
@@ -53,7 +53,11 @@
void Unsubscribe() {
if (monitor_ != nullptr) {
+#if BASE_VER < 860220
subscription_.reset();
+#else
+ subscription_ = {};
+#endif
monitor_ = nullptr;
}
}
@@ -71,7 +75,11 @@
}
TemperatureMonitorInterface *monitor_;
+#if BASE_VER < 860220
std::unique_ptr<base::CallbackList<void(int)>::Subscription> subscription_;
+#else
+ base::CallbackListSubscription subscription_;
+#endif
base::Callback<void(int)> cb_;
// This is no longer memory safe by taking a pointer of std::unique_ptr.
// It is only for a leakless base::RunLoop** to track current run_loop in
diff --git a/thermal_output_processor.cc b/thermal_output_processor.cc
index 5a5a2b3..e60049b 100644
--- a/thermal_output_processor.cc
+++ b/thermal_output_processor.cc
@@ -40,9 +40,14 @@
LOG(WARNING) << "Failed to get cpufreq devices";
}
+#if BASE_VER < 860220
subscription_.reset(outputs->Subscribe(base::Bind(
&ThermalOutputProcessor::OnOutputSet,
weak_ptr_factory_.GetWeakPtr())).release());
+#else
+ subscription_ = outputs->Subscribe(base::Bind(
+ &ThermalOutputProcessor::OnOutputSet, weak_ptr_factory_.GetWeakPtr()));
+#endif
}
ThermalOutputProcessor::Status ThermalOutputProcessor::ProcessValueAth10k(
diff --git a/thermal_output_processor.h b/thermal_output_processor.h
index 94577e7..6b0bdf4 100644
--- a/thermal_output_processor.h
+++ b/thermal_output_processor.h
@@ -54,7 +54,11 @@
std::map<std::string, int> deferred_values_;
base::RepeatingTimer deferred_values_timer_;
std::vector<std::unique_ptr<CpufreqDevice>> cpufreq_devices_;
+#if BASE_VER < 860220
std::unique_ptr<KeyValuePublisher::Subscription> subscription_;
+#else
+ base::CallbackListSubscription subscription_;
+#endif
base::WeakPtrFactory<ThermalOutputProcessor> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(ThermalOutputProcessor);
diff --git a/thermal_zone_controller.h b/thermal_zone_controller.h
index 3d8da0f..983860e 100644
--- a/thermal_zone_controller.h
+++ b/thermal_zone_controller.h
@@ -56,8 +56,12 @@
const ThermalZone *zone_;
std::vector<TemperatureMonitorInterface *> temperature_monitors_;
+#if BASE_VER < 860220
std::vector<std::unique_ptr<TemperatureMonitorInterface::Subscription>>
subscriptions_;
+#else
+ std::vector<base::CallbackListSubscription> subscriptions_;
+#endif
bool is_running_;
ThermalStateEngine thermal_state_engine_;
const ThermalState *cur_thermal_state_;
diff --git a/thermal_zone_controller_unittest.cc b/thermal_zone_controller_unittest.cc
index 972a8c2..973295a 100644
--- a/thermal_zone_controller_unittest.cc
+++ b/thermal_zone_controller_unittest.cc
@@ -63,7 +63,11 @@
unique_ptr<ThermalZoneController> zone_controller_;
KeyValuePublisher output_publisher_;
+#if BASE_VER < 860220
std::unique_ptr<KeyValuePublisher::Subscription> subscription_;
+#else
+ base::CallbackListSubscription subscription_;
+#endif
MockTemperatureMonitor temp_monitor_0_;
MockTemperatureMonitor temp_monitor_1_;
static ThermalZone thermal_zone_;