Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00026 #pragma once
00027
00028 #include <string>
00029 #include <google/protobuf/io/zero_copy_stream_impl.h>
00030 #include <drizzled/message/transaction.pb.h>
00031
00032 class TransactionFileReader
00033 {
00034 public:
00035 TransactionFileReader();
00036 ~TransactionFileReader();
00037
00047 bool openFile(const std::string &filename, int start_pos = 0);
00048
00060 bool getNextTransaction(drizzled::message::Transaction &transaction,
00061 uint32_t *checksum);
00062
00066 uint32_t checksumLastReadTransaction();
00067
00071 std::string getErrorString()
00072 {
00073 return error;
00074 }
00075
00076 private:
00077 int file;
00078 char *buffer;
00079 char *temp_buffer;
00080 uint32_t previous_length;
00081 std::string error;
00082 google::protobuf::io::ZeroCopyInputStream *raw_input;
00083 };
00084