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) {