Merge multiple eventMetricData entries into a single StatsLogReport
when writing to dropbox

Test: manual test.

Change-Id: I8ce323002ae1cad62703ece92bd99a5058b16fba
diff --git a/cmds/statsd/src/DropboxWriter.cpp b/cmds/statsd/src/DropboxWriter.cpp
index 37df834..b72e530 100644
--- a/cmds/statsd/src/DropboxWriter.cpp
+++ b/cmds/statsd/src/DropboxWriter.cpp
@@ -31,18 +31,17 @@
 DropboxWriter::DropboxWriter(const string& tag) : mTag(tag), mLogReport(), mBufferSize(0) {
 }
 
-void DropboxWriter::addStatsLogReport(const StatsLogReport& log) {
-    mLogReport = log;
-    flushIfNecessary(log);
-    mBufferSize += log.ByteSize();
+void DropboxWriter::addEventMetricData(const EventMetricData& eventMetricData) {
+    flushIfNecessary(eventMetricData);
+    EventMetricData* newEntry = mLogReport.mutable_event_metrics()->add_data();
+    newEntry->CopyFrom(eventMetricData);
+    mBufferSize += eventMetricData.ByteSize();
 }
 
-void DropboxWriter::flushIfNecessary(const StatsLogReport& log) {
-    // TODO: Decide to flush depending on the serialized size of the StatsLogReport.
-    // if (entry.ByteSize() + mBufferSize > kMaxSerializedBytes) {
-    //     flush();
-    // }
-    flush();
+void DropboxWriter::flushIfNecessary(const EventMetricData& eventMetricData) {
+    if (eventMetricData.ByteSize() + mBufferSize > kMaxSerializedBytes) {
+        flush();
+    }
 }
 
 void DropboxWriter::flush() {
diff --git a/cmds/statsd/src/DropboxWriter.h b/cmds/statsd/src/DropboxWriter.h
index 1fd0d75..6107685 100644
--- a/cmds/statsd/src/DropboxWriter.h
+++ b/cmds/statsd/src/DropboxWriter.h
@@ -32,7 +32,7 @@
      */
     DropboxWriter(const string& tag);
 
-    void addStatsLogReport(const StatsLogReport& log);
+    void addEventMetricData(const EventMetricData& eventMetricData);
 
     /* Request a flush to dropbox. */
     void flush();
@@ -61,7 +61,7 @@
 
     /* Check if the buffer size exceeds the max buffer size when the new entry is added, and flush
        the logs to dropbox if true. */
-    void flushIfNecessary(const StatsLogReport& log);
+    void flushIfNecessary(const EventMetricData& eventMetricData);
 };
 
 }  // namespace statsd
diff --git a/cmds/statsd/src/StatsLogProcessor.cpp b/cmds/statsd/src/StatsLogProcessor.cpp
index 0c77ee5..280f9af 100644
--- a/cmds/statsd/src/StatsLogProcessor.cpp
+++ b/cmds/statsd/src/StatsLogProcessor.cpp
@@ -54,12 +54,8 @@
     // dump all statsd logs to dropbox for now.
     // TODO: Add filtering, aggregation, etc.
     if (err == NO_ERROR) {
-        StatsLogReport logReport;
-        logReport.set_start_report_millis(entry.tv_sec * 1000 + entry.tv_nsec / 1000 / 1000);
-        EventMetricData* eventMetricData = logReport.mutable_event_metrics()->add_data();
-        *eventMetricData = parse(msg);
-
-        m_dropbox_writer.addStatsLogReport(logReport);
+        EventMetricData eventMetricData = parse(msg);
+        m_dropbox_writer.addEventMetricData(eventMetricData);
     }
 }