StatsCompanionService sends messages to statsd
StatsCompanionService can now inform statsd that an alarm (for anomaly
alerting and for polling) has fired, so that statsd can act accordingly.
Test: manual created an alarm from statsd.main and checked logcat that
statsd received the broadcast that it fired
Change-Id: I1d33dfbee0d3e213c91dd6973d2622ecacc890c8
diff --git a/cmds/statsd/src/StatsService.cpp b/cmds/statsd/src/StatsService.cpp
index 24413f6..67f6782 100644
--- a/cmds/statsd/src/StatsService.cpp
+++ b/cmds/statsd/src/StatsService.cpp
@@ -162,6 +162,38 @@
}
Status
+StatsService::informAnomalyAlarmFired()
+{
+ ALOGD("StatsService::informAnomalyAlarmFired was called");
+
+ if (IPCThreadState::self()->getCallingUid() != AID_SYSTEM) {
+ return Status::fromExceptionCode(Status::EX_SECURITY,
+ "Only system uid can call informAnomalyAlarmFired");
+ }
+
+ ALOGD("StatsService::informAnomalyAlarmFired succeeded");
+ // TODO: check through all counters/timers and see if an anomaly has indeed occurred.
+
+ return Status::ok();
+}
+
+Status
+StatsService::informPollAlarmFired()
+{
+ ALOGD("StatsService::informPollAlarmFired was called");
+
+ if (IPCThreadState::self()->getCallingUid() != AID_SYSTEM) {
+ return Status::fromExceptionCode(Status::EX_SECURITY,
+ "Only system uid can call informPollAlarmFired");
+ }
+
+ ALOGD("StatsService::informPollAlarmFired succeeded");
+ // TODO: determine what services to poll and poll (or ask StatsCompanionService to poll) them.
+
+ return Status::ok();
+}
+
+Status
StatsService::systemRunning()
{
if (IPCThreadState::self()->getCallingUid() != AID_SYSTEM) {
diff --git a/cmds/statsd/src/StatsService.h b/cmds/statsd/src/StatsService.h
index ef52b562..2a8c3f6 100644
--- a/cmds/statsd/src/StatsService.h
+++ b/cmds/statsd/src/StatsService.h
@@ -49,6 +49,10 @@
virtual Status systemRunning();
+ virtual Status informAnomalyAlarmFired();
+
+ virtual Status informPollAlarmFired();
+
virtual status_t setProcessor(const sp<StatsLogProcessor>& main_processor);
private: