Add simple Message struct for sorting

This is going to be the simple object used to store and sort messages
before they have been matched.  Make sure operator< works, since that's
how we'll be sorting them.

Change-Id: Icc6b8f5b62024f6cd86e11d18dde438d09a9706b
diff --git a/aos/events/logging/logfile_utils.h b/aos/events/logging/logfile_utils.h
index 985a6bc..25f02f9 100644
--- a/aos/events/logging/logfile_utils.h
+++ b/aos/events/logging/logfile_utils.h
@@ -309,6 +309,23 @@
   monotonic_clock::time_point newest_timestamp_ = monotonic_clock::min_time;
 };
 
+// Struct to hold a message as it gets sorted on a single node.
+struct Message {
+  // The channel.
+  uint32_t channel_index = 0xffffffff;
+  // The local queue index.
+  uint32_t queue_index = 0xffffffff;
+  // The local timestamp on the monotonic clock.
+  monotonic_clock::time_point timestamp = monotonic_clock::min_time;
+  // The data (either a timestamp header, or a data header).
+  SizePrefixedFlatbufferVector<MessageHeader> data;
+
+  bool operator<(const Message &m2) const;
+  bool operator>=(const Message &m2) const;
+};
+
+std::ostream &operator<<(std::ostream &os, const Message &m);
+
 class TimestampMerger;
 
 // A design requirement is that the relevant data for a channel is not more than