pullers now cache data to throttle frequent pull requests.
all pullers have a default 1s cool down before next pull.
We can adjust these later.
Also add puller stats in StatsdStats

Test: unit test
Change-Id: I71894a24c41e059d841591312dbb852f54387b7d
diff --git a/cmds/statsd/src/stats_log_util.h b/cmds/statsd/src/stats_log_util.h
index 33303dc..09a43f5 100644
--- a/cmds/statsd/src/stats_log_util.h
+++ b/cmds/statsd/src/stats_log_util.h
@@ -17,29 +17,32 @@
 #pragma once
 
 #include <android/util/ProtoOutputStream.h>
-#include "frameworks/base/cmds/statsd/src/statsd_config.pb.h"
-#include "frameworks/base/cmds/statsd/src/stats_log.pb.h"
 #include "field_util.h"
+#include "frameworks/base/cmds/statsd/src/stats_log.pb.h"
+#include "frameworks/base/cmds/statsd/src/statsd_config.pb.h"
+#include "guardrail/StatsdStats.h"
 
 namespace android {
 namespace os {
 namespace statsd {
 
 // Helper function to write DimensionsValue proto to ProtoOutputStream.
-void writeDimensionsValueProtoToStream(
-    const DimensionsValue& fieldValue, util::ProtoOutputStream* protoOutput);
+void writeDimensionsValueProtoToStream(const DimensionsValue& fieldValue,
+                                       util::ProtoOutputStream* protoOutput);
 
 // Helper function to write Field proto to ProtoOutputStream.
-void writeFieldProtoToStream(
-    const Field& field, util::ProtoOutputStream* protoOutput);
+void writeFieldProtoToStream(const Field& field, util::ProtoOutputStream* protoOutput);
 
 // Helper function to construct the field value tree and write to ProtoOutputStream
-void writeFieldValueTreeToStream(const FieldValueMap &fieldValueMap,
-    util::ProtoOutputStream* protoOutput);
+void writeFieldValueTreeToStream(const FieldValueMap& fieldValueMap,
+                                 util::ProtoOutputStream* protoOutput);
 
 // Convert the TimeUnit enum to the bucket size in millis.
 int64_t TimeUnitToBucketSizeInMillis(TimeUnit unit);
 
+// Helper function to write PulledAtomStats to ProtoOutputStream
+void writePullerStatsToStream(const std::pair<int, StatsdStats::PulledAtomStats>& pair,
+                              util::ProtoOutputStream* protoOutput);
 }  // namespace statsd
 }  // namespace os
 }  // namespace android
\ No newline at end of file