Optimize simulated event loop log reading.

Currenly, we make 2 copies of a message before it is sent in
simulation: First, from the source (file or lzma decoder) to a
flatbuffer vector, then to the simulated message. By aligning the
data part of a MessageHeader in the first copy from the source,
we don't need to copy it again. This is all tracked with
shared_ptr's so the lifetime management is easy.

Change-Id: I82c86ef3f9662d4c615dc57862fa89b1b9981ed4
Signed-off-by: Tyler Chatow <tchatow@gmail.com>
Signed-off-by: Austin Schuh <austin.linux@gmail.com>
diff --git a/aos/events/logging/logfile_utils_test.cc b/aos/events/logging/logfile_utils_test.cc
index 1c67312..e1e2ebd 100644
--- a/aos/events/logging/logfile_utils_test.cc
+++ b/aos/events/logging/logfile_utils_test.cc
@@ -230,14 +230,14 @@
                  BootTimestamp{.boot = 0, .time = e + chrono::milliseconds(1)},
              .monotonic_remote_boot = 0xffffff,
              .monotonic_timestamp_boot = 0xffffff,
-             .data = SizePrefixedFlatbufferVector<MessageHeader>::Empty()};
+             .data = nullptr};
   Message m2{.channel_index = 0,
              .queue_index = BootQueueIndex{.boot = 0, .index = 0u},
              .timestamp =
                  BootTimestamp{.boot = 0, .time = e + chrono::milliseconds(2)},
              .monotonic_remote_boot = 0xffffff,
              .monotonic_timestamp_boot = 0xffffff,
-             .data = SizePrefixedFlatbufferVector<MessageHeader>::Empty()};
+             .data = nullptr};
 
   EXPECT_LT(m1, m2);
   EXPECT_GE(m2, m1);
@@ -847,22 +847,25 @@
 
   EXPECT_EQ(output[0].timestamp.boot, 0u);
   EXPECT_EQ(output[0].timestamp.time, e + chrono::milliseconds(101000));
-  EXPECT_FALSE(output[0].data.message().has_monotonic_timestamp_time());
+  EXPECT_FALSE(output[0].data->has_monotonic_timestamp_time);
 
   EXPECT_EQ(output[1].timestamp.boot, 0u);
   EXPECT_EQ(output[1].timestamp.time, e + chrono::milliseconds(101001));
-  EXPECT_TRUE(output[1].data.message().has_monotonic_timestamp_time());
-  EXPECT_EQ(output[1].data.message().monotonic_timestamp_time(), 971);
+  EXPECT_TRUE(output[1].data->has_monotonic_timestamp_time);
+  EXPECT_EQ(output[1].data->monotonic_timestamp_time,
+            monotonic_clock::time_point(std::chrono::nanoseconds(971)));
 
   EXPECT_EQ(output[2].timestamp.boot, 0u);
   EXPECT_EQ(output[2].timestamp.time, e + chrono::milliseconds(101002));
-  EXPECT_TRUE(output[2].data.message().has_monotonic_timestamp_time());
-  EXPECT_EQ(output[2].data.message().monotonic_timestamp_time(), 972);
+  EXPECT_TRUE(output[2].data->has_monotonic_timestamp_time);
+  EXPECT_EQ(output[2].data->monotonic_timestamp_time,
+            monotonic_clock::time_point(std::chrono::nanoseconds(972)));
 
   EXPECT_EQ(output[3].timestamp.boot, 0u);
   EXPECT_EQ(output[3].timestamp.time, e + chrono::milliseconds(101003));
-  EXPECT_TRUE(output[3].data.message().has_monotonic_timestamp_time());
-  EXPECT_EQ(output[3].data.message().monotonic_timestamp_time(), 973);
+  EXPECT_TRUE(output[3].data->has_monotonic_timestamp_time);
+  EXPECT_EQ(output[3].data->monotonic_timestamp_time,
+            monotonic_clock::time_point(std::chrono::nanoseconds(973)));
 }
 
 // Tests that we can match timestamps on delivered messages.
@@ -941,17 +944,17 @@
     EXPECT_EQ(output0[0].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output0[0].monotonic_event_time.time,
               e + chrono::milliseconds(1000));
-    EXPECT_TRUE(output0[0].data.Verify());
+    EXPECT_TRUE(output0[0].data != nullptr);
 
     EXPECT_EQ(output0[1].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output0[1].monotonic_event_time.time,
               e + chrono::milliseconds(2000));
-    EXPECT_TRUE(output0[1].data.Verify());
+    EXPECT_TRUE(output0[1].data != nullptr);
 
     EXPECT_EQ(output0[2].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output0[2].monotonic_event_time.time,
               e + chrono::milliseconds(3000));
-    EXPECT_TRUE(output0[2].data.Verify());
+    EXPECT_TRUE(output0[2].data != nullptr);
   }
 
   {
@@ -993,17 +996,17 @@
     EXPECT_EQ(output1[0].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output1[0].monotonic_event_time.time,
               e + chrono::seconds(100) + chrono::milliseconds(1000));
-    EXPECT_TRUE(output1[0].data.Verify());
+    EXPECT_TRUE(output1[0].data != nullptr);
 
     EXPECT_EQ(output1[1].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output1[1].monotonic_event_time.time,
               e + chrono::seconds(100) + chrono::milliseconds(2000));
-    EXPECT_TRUE(output1[1].data.Verify());
+    EXPECT_TRUE(output1[1].data != nullptr);
 
     EXPECT_EQ(output1[2].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output1[2].monotonic_event_time.time,
               e + chrono::seconds(100) + chrono::milliseconds(3000));
-    EXPECT_TRUE(output1[2].data.Verify());
+    EXPECT_TRUE(output1[2].data != nullptr);
   }
 }
 
@@ -1072,7 +1075,7 @@
     EXPECT_EQ(output0[0].monotonic_timestamp_time.boot, 0u);
     EXPECT_EQ(output0[0].monotonic_timestamp_time.time,
               monotonic_clock::min_time);
-    EXPECT_TRUE(output0[0].data.Verify());
+    EXPECT_TRUE(output0[0].data != nullptr);
 
     EXPECT_EQ(output0[1].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output0[1].monotonic_event_time.time,
@@ -1080,7 +1083,7 @@
     EXPECT_EQ(output0[1].monotonic_timestamp_time.boot, 0u);
     EXPECT_EQ(output0[1].monotonic_timestamp_time.time,
               monotonic_clock::min_time);
-    EXPECT_TRUE(output0[1].data.Verify());
+    EXPECT_TRUE(output0[1].data != nullptr);
 
     EXPECT_EQ(output0[2].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output0[2].monotonic_event_time.time,
@@ -1088,7 +1091,7 @@
     EXPECT_EQ(output0[2].monotonic_timestamp_time.boot, 0u);
     EXPECT_EQ(output0[2].monotonic_timestamp_time.time,
               monotonic_clock::min_time);
-    EXPECT_TRUE(output0[2].data.Verify());
+    EXPECT_TRUE(output0[2].data != nullptr);
   }
 
   {
@@ -1109,7 +1112,7 @@
     EXPECT_EQ(output1[0].monotonic_timestamp_time.boot, 0u);
     EXPECT_EQ(output1[0].monotonic_timestamp_time.time,
               e + chrono::nanoseconds(971));
-    EXPECT_TRUE(output1[0].data.Verify());
+    EXPECT_TRUE(output1[0].data != nullptr);
 
     EXPECT_EQ(output1[1].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output1[1].monotonic_event_time.time,
@@ -1117,7 +1120,7 @@
     EXPECT_EQ(output1[1].monotonic_timestamp_time.boot, 0u);
     EXPECT_EQ(output1[1].monotonic_timestamp_time.time,
               e + chrono::nanoseconds(5458));
-    EXPECT_TRUE(output1[1].data.Verify());
+    EXPECT_TRUE(output1[1].data != nullptr);
 
     EXPECT_EQ(output1[2].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output1[2].monotonic_event_time.time,
@@ -1125,7 +1128,7 @@
     EXPECT_EQ(output1[2].monotonic_timestamp_time.boot, 0u);
     EXPECT_EQ(output1[2].monotonic_timestamp_time.time,
               monotonic_clock::min_time);
-    EXPECT_TRUE(output1[2].data.Verify());
+    EXPECT_TRUE(output1[2].data != nullptr);
   }
 
   EXPECT_EQ(mapper0_count, 3u);
@@ -1200,17 +1203,17 @@
     EXPECT_EQ(output1[0].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output1[0].monotonic_event_time.time,
               e + chrono::seconds(100) + chrono::milliseconds(1000));
-    EXPECT_TRUE(output1[0].data.Verify());
+    EXPECT_TRUE(output1[0].data != nullptr);
 
     EXPECT_EQ(output1[1].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output1[1].monotonic_event_time.time,
               e + chrono::seconds(100) + chrono::milliseconds(2000));
-    EXPECT_TRUE(output1[1].data.Verify());
+    EXPECT_TRUE(output1[1].data != nullptr);
 
     EXPECT_EQ(output1[2].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output1[2].monotonic_event_time.time,
               e + chrono::seconds(100) + chrono::milliseconds(3000));
-    EXPECT_TRUE(output1[2].data.Verify());
+    EXPECT_TRUE(output1[2].data != nullptr);
   }
 
   {
@@ -1236,17 +1239,17 @@
     EXPECT_EQ(output0[0].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output0[0].monotonic_event_time.time,
               e + chrono::milliseconds(1000));
-    EXPECT_TRUE(output0[0].data.Verify());
+    EXPECT_TRUE(output0[0].data != nullptr);
 
     EXPECT_EQ(output0[1].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output0[1].monotonic_event_time.time,
               e + chrono::milliseconds(2000));
-    EXPECT_TRUE(output0[1].data.Verify());
+    EXPECT_TRUE(output0[1].data != nullptr);
 
     EXPECT_EQ(output0[2].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output0[2].monotonic_event_time.time,
               e + chrono::milliseconds(3000));
-    EXPECT_TRUE(output0[2].data.Verify());
+    EXPECT_TRUE(output0[2].data != nullptr);
   }
 
   EXPECT_EQ(mapper0_count, 3u);
@@ -1319,17 +1322,17 @@
     EXPECT_EQ(output1[0].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output1[0].monotonic_event_time.time,
               e + chrono::seconds(100) + chrono::milliseconds(1000));
-    EXPECT_FALSE(output1[0].data.Verify());
+    EXPECT_FALSE(output1[0].data != nullptr);
 
     EXPECT_EQ(output1[1].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output1[1].monotonic_event_time.time,
               e + chrono::seconds(100) + chrono::milliseconds(2000));
-    EXPECT_TRUE(output1[1].data.Verify());
+    EXPECT_TRUE(output1[1].data != nullptr);
 
     EXPECT_EQ(output1[2].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output1[2].monotonic_event_time.time,
               e + chrono::seconds(100) + chrono::milliseconds(3000));
-    EXPECT_TRUE(output1[2].data.Verify());
+    EXPECT_TRUE(output1[2].data != nullptr);
   }
 
   EXPECT_EQ(mapper0_count, 0u);
@@ -1402,17 +1405,17 @@
     EXPECT_EQ(output1[0].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output1[0].monotonic_event_time.time,
               e + chrono::seconds(100) + chrono::milliseconds(1000));
-    EXPECT_TRUE(output1[0].data.Verify());
+    EXPECT_TRUE(output1[0].data != nullptr);
 
     EXPECT_EQ(output1[1].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output1[1].monotonic_event_time.time,
               e + chrono::seconds(100) + chrono::milliseconds(2000));
-    EXPECT_TRUE(output1[1].data.Verify());
+    EXPECT_TRUE(output1[1].data != nullptr);
 
     EXPECT_EQ(output1[2].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output1[2].monotonic_event_time.time,
               e + chrono::seconds(100) + chrono::milliseconds(3000));
-    EXPECT_FALSE(output1[2].data.Verify());
+    EXPECT_FALSE(output1[2].data != nullptr);
   }
 
   EXPECT_EQ(mapper0_count, 0u);
@@ -1477,12 +1480,12 @@
     EXPECT_EQ(output1[0].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output1[0].monotonic_event_time.time,
               e + chrono::seconds(100) + chrono::milliseconds(1000));
-    EXPECT_TRUE(output1[0].data.Verify());
+    EXPECT_TRUE(output1[0].data != nullptr);
 
     EXPECT_EQ(output1[1].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output1[1].monotonic_event_time.time,
               e + chrono::seconds(100) + chrono::milliseconds(3000));
-    EXPECT_TRUE(output1[1].data.Verify());
+    EXPECT_TRUE(output1[1].data != nullptr);
   }
 
   EXPECT_EQ(mapper0_count, 0u);
@@ -1550,22 +1553,22 @@
     EXPECT_EQ(output1[0].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output1[0].monotonic_event_time.time,
               e + chrono::seconds(100) + chrono::milliseconds(1000));
-    EXPECT_TRUE(output1[0].data.Verify());
+    EXPECT_TRUE(output1[0].data != nullptr);
 
     EXPECT_EQ(output1[1].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output1[1].monotonic_event_time.time,
               e + chrono::seconds(100) + chrono::milliseconds(2000));
-    EXPECT_TRUE(output1[1].data.Verify());
+    EXPECT_TRUE(output1[1].data != nullptr);
 
     EXPECT_EQ(output1[2].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output1[2].monotonic_event_time.time,
               e + chrono::seconds(100) + chrono::milliseconds(2000));
-    EXPECT_TRUE(output1[2].data.Verify());
+    EXPECT_TRUE(output1[2].data != nullptr);
 
     EXPECT_EQ(output1[3].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output1[3].monotonic_event_time.time,
               e + chrono::seconds(100) + chrono::milliseconds(3000));
-    EXPECT_TRUE(output1[3].data.Verify());
+    EXPECT_TRUE(output1[3].data != nullptr);
   }
 
   EXPECT_EQ(mapper0_count, 0u);
@@ -1650,17 +1653,17 @@
     EXPECT_EQ(output1[0].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output1[0].monotonic_event_time.time,
               e + chrono::seconds(100) + chrono::milliseconds(1000));
-    EXPECT_FALSE(output1[0].data.Verify());
+    EXPECT_FALSE(output1[0].data != nullptr);
 
     EXPECT_EQ(output1[1].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output1[1].monotonic_event_time.time,
               e + chrono::seconds(100) + chrono::milliseconds(2000));
-    EXPECT_FALSE(output1[1].data.Verify());
+    EXPECT_FALSE(output1[1].data != nullptr);
 
     EXPECT_EQ(output1[2].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output1[2].monotonic_event_time.time,
               e + chrono::seconds(100) + chrono::milliseconds(3000));
-    EXPECT_FALSE(output1[2].data.Verify());
+    EXPECT_FALSE(output1[2].data != nullptr);
   }
   EXPECT_EQ(mapper1_count, 3u);
 }
@@ -1754,22 +1757,22 @@
     EXPECT_EQ(output0[0].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output0[0].monotonic_event_time.time,
               e + chrono::milliseconds(1000));
-    EXPECT_TRUE(output0[0].data.Verify());
+    EXPECT_TRUE(output0[0].data != nullptr);
 
     EXPECT_EQ(output0[1].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output0[1].monotonic_event_time.time,
               e + chrono::milliseconds(1000));
-    EXPECT_TRUE(output0[1].data.Verify());
+    EXPECT_TRUE(output0[1].data != nullptr);
 
     EXPECT_EQ(output0[2].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output0[2].monotonic_event_time.time,
               e + chrono::milliseconds(2000));
-    EXPECT_TRUE(output0[2].data.Verify());
+    EXPECT_TRUE(output0[2].data != nullptr);
 
     EXPECT_EQ(output0[3].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output0[3].monotonic_event_time.time,
               e + chrono::milliseconds(3000));
-    EXPECT_TRUE(output0[3].data.Verify());
+    EXPECT_TRUE(output0[3].data != nullptr);
   }
 
   {
@@ -1827,22 +1830,22 @@
     EXPECT_EQ(output1[0].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output1[0].monotonic_event_time.time,
               e + chrono::seconds(100) + chrono::milliseconds(1000));
-    EXPECT_TRUE(output1[0].data.Verify());
+    EXPECT_TRUE(output1[0].data != nullptr);
 
     EXPECT_EQ(output1[1].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output1[1].monotonic_event_time.time,
               e + chrono::seconds(100) + chrono::milliseconds(1000));
-    EXPECT_TRUE(output1[1].data.Verify());
+    EXPECT_TRUE(output1[1].data != nullptr);
 
     EXPECT_EQ(output1[2].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output1[2].monotonic_event_time.time,
               e + chrono::seconds(100) + chrono::milliseconds(2000));
-    EXPECT_TRUE(output1[2].data.Verify());
+    EXPECT_TRUE(output1[2].data != nullptr);
 
     EXPECT_EQ(output1[3].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output1[3].monotonic_event_time.time,
               e + chrono::seconds(100) + chrono::milliseconds(3000));
-    EXPECT_TRUE(output1[3].data.Verify());
+    EXPECT_TRUE(output1[3].data != nullptr);
   }
 }
 
@@ -2194,7 +2197,7 @@
               (BootQueueIndex{.boot = 0u, .index = 0u}));
     EXPECT_EQ(output0[0].monotonic_remote_time, BootTimestamp::min_time());
     EXPECT_EQ(output0[0].monotonic_timestamp_time, BootTimestamp::min_time());
-    EXPECT_TRUE(output0[0].data.Verify());
+    EXPECT_TRUE(output0[0].data != nullptr);
 
     EXPECT_EQ(output0[1].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output0[1].monotonic_event_time.time,
@@ -2203,7 +2206,7 @@
               (BootQueueIndex{.boot = 0u, .index = 1u}));
     EXPECT_EQ(output0[1].monotonic_remote_time, BootTimestamp::min_time());
     EXPECT_EQ(output0[1].monotonic_timestamp_time, BootTimestamp::min_time());
-    EXPECT_TRUE(output0[1].data.Verify());
+    EXPECT_TRUE(output0[1].data != nullptr);
 
     EXPECT_EQ(output0[2].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output0[2].monotonic_event_time.time,
@@ -2212,7 +2215,7 @@
               (BootQueueIndex{.boot = 0u, .index = 2u}));
     EXPECT_EQ(output0[2].monotonic_remote_time, BootTimestamp::min_time());
     EXPECT_EQ(output0[2].monotonic_timestamp_time, BootTimestamp::min_time());
-    EXPECT_TRUE(output0[2].data.Verify());
+    EXPECT_TRUE(output0[2].data != nullptr);
   }
 
   {
@@ -2267,7 +2270,7 @@
     EXPECT_EQ(output1[0].monotonic_timestamp_time.boot, 0u);
     EXPECT_EQ(output1[0].monotonic_timestamp_time.time,
               e + chrono::milliseconds(1001));
-    EXPECT_TRUE(output1[0].data.Verify());
+    EXPECT_TRUE(output1[0].data != nullptr);
 
     EXPECT_EQ(output1[1].monotonic_event_time.boot, 1u);
     EXPECT_EQ(output1[1].monotonic_event_time.time,
@@ -2280,7 +2283,7 @@
     EXPECT_EQ(output1[1].monotonic_timestamp_time.boot, 0u);
     EXPECT_EQ(output1[1].monotonic_timestamp_time.time,
               e + chrono::milliseconds(2001));
-    EXPECT_TRUE(output1[1].data.Verify());
+    EXPECT_TRUE(output1[1].data != nullptr);
 
     EXPECT_EQ(output1[2].monotonic_event_time.boot, 1u);
     EXPECT_EQ(output1[2].monotonic_event_time.time,
@@ -2293,7 +2296,7 @@
     EXPECT_EQ(output1[2].monotonic_timestamp_time.boot, 0u);
     EXPECT_EQ(output1[2].monotonic_timestamp_time.time,
               e + chrono::milliseconds(2001));
-    EXPECT_TRUE(output1[2].data.Verify());
+    EXPECT_TRUE(output1[2].data != nullptr);
 
     EXPECT_EQ(output1[3].monotonic_event_time.boot, 1u);
     EXPECT_EQ(output1[3].monotonic_event_time.time,
@@ -2306,7 +2309,7 @@
     EXPECT_EQ(output1[3].monotonic_timestamp_time.boot, 0u);
     EXPECT_EQ(output1[3].monotonic_timestamp_time.time,
               e + chrono::milliseconds(3001));
-    EXPECT_TRUE(output1[3].data.Verify());
+    EXPECT_TRUE(output1[3].data != nullptr);
 
     LOG(INFO) << output1[0];
     LOG(INFO) << output1[1];
@@ -2414,7 +2417,7 @@
     EXPECT_EQ(output0[0].monotonic_timestamp_time.boot, 0u);
     EXPECT_EQ(output0[0].monotonic_timestamp_time.time,
               e + chrono::seconds(100) + chrono::milliseconds(1001));
-    EXPECT_TRUE(output0[0].data.Verify());
+    EXPECT_TRUE(output0[0].data != nullptr);
 
     EXPECT_EQ(output0[1].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output0[1].monotonic_event_time.time,
@@ -2425,7 +2428,7 @@
     EXPECT_EQ(output0[1].monotonic_timestamp_time.boot, 0u);
     EXPECT_EQ(output0[1].monotonic_timestamp_time.time,
               e + chrono::seconds(20) + chrono::milliseconds(2001));
-    EXPECT_TRUE(output0[1].data.Verify());
+    EXPECT_TRUE(output0[1].data != nullptr);
 
     EXPECT_EQ(output0[2].monotonic_event_time.boot, 0u);
     EXPECT_EQ(output0[2].monotonic_event_time.time,
@@ -2436,7 +2439,7 @@
     EXPECT_EQ(output0[2].monotonic_timestamp_time.boot, 0u);
     EXPECT_EQ(output0[2].monotonic_timestamp_time.time,
               e + chrono::seconds(20) + chrono::milliseconds(3001));
-    EXPECT_TRUE(output0[2].data.Verify());
+    EXPECT_TRUE(output0[2].data != nullptr);
   }
 
   {
@@ -2480,21 +2483,21 @@
               e + chrono::seconds(100) + chrono::milliseconds(1000));
     EXPECT_EQ(output1[0].monotonic_remote_time, BootTimestamp::min_time());
     EXPECT_EQ(output1[0].monotonic_timestamp_time, BootTimestamp::min_time());
-    EXPECT_TRUE(output1[0].data.Verify());
+    EXPECT_TRUE(output1[0].data != nullptr);
 
     EXPECT_EQ(output1[1].monotonic_event_time.boot, 1u);
     EXPECT_EQ(output1[1].monotonic_event_time.time,
               e + chrono::seconds(20) + chrono::milliseconds(2000));
     EXPECT_EQ(output1[1].monotonic_remote_time, BootTimestamp::min_time());
     EXPECT_EQ(output1[1].monotonic_timestamp_time, BootTimestamp::min_time());
-    EXPECT_TRUE(output1[1].data.Verify());
+    EXPECT_TRUE(output1[1].data != nullptr);
 
     EXPECT_EQ(output1[2].monotonic_event_time.boot, 1u);
     EXPECT_EQ(output1[2].monotonic_event_time.time,
               e + chrono::seconds(20) + chrono::milliseconds(3000));
     EXPECT_EQ(output1[2].monotonic_remote_time, BootTimestamp::min_time());
     EXPECT_EQ(output1[2].monotonic_timestamp_time, BootTimestamp::min_time());
-    EXPECT_TRUE(output1[2].data.Verify());
+    EXPECT_TRUE(output1[2].data != nullptr);
 
     LOG(INFO) << output1[0];
     LOG(INFO) << output1[1];