// -*- Mode: C++ -*- #ifndef BINARY_LOG_H_INCLUDED #define BINARY_LOG_H_INCLUDED #include #include "binlog_encoding.h" #include #include #include namespace BinaryLog { /** Wrapper class to wrap a protobuf event in a type tag and a length. The type tag is not part of the actual message, but is handled separately since it is needed to decode the events. */ class Event { public: enum EventType { UNDEF, START, CHAIN, COMMIT, ROLLBACK, QUERY, COUNT }; Event(EventType type, google::protobuf::Message *message) : m_type(type), m_message(message) { } Event() : m_type(UNDEF), m_message(0) { } ~Event() { delete m_message; } bool write(google::protobuf::io::CodedOutputStream* out) const; void print(std::ostream& out) const; bool read(google::protobuf::io::CodedInputStream* in); private: EventType m_type; google::protobuf::Message *m_message; }; } #endif /* BINARY_LOG_H_INCLUDED */