提交 b28a9479 编写于 作者: G GoLancer 提交者: Liangliang Zhang

framework: Fix record viewer issue

上级 f87fb78d
......@@ -31,7 +31,11 @@ RecordReader::RecordReader(const std::string& file) {
}
}
void RecordReader::Reset() { file_reader_->Reset(); }
void RecordReader::Reset() {
file_reader_->Reset();
message_index_ = 0;
chunk_ = ChunkBody();
}
const Header& RecordReader::header() const { return header_; }
......
......@@ -51,7 +51,6 @@ class RecordReader : public RecordBase {
bool ReadNextChunk(ChunkBody* chunk, uint64_t begin_time, uint64_t end_time);
proto::ChunkBody chunk_;
proto::Index index_;
uint64_t pos = 0;
uint32_t message_index_ = 0;
std::unique_ptr<RecordFileReader> file_reader_;
};
......
......@@ -90,7 +90,7 @@ bool RecordViewer::Iterator::operator==(Iterator const& other) const {
if (other.end_) {
return end_;
}
return index_ == other.index_;
return index_ == other.index_ && viewer_ == other.viewer_;
}
bool RecordViewer::Iterator::operator!=(const Iterator& rhs) const {
......
......@@ -50,21 +50,19 @@ class RecordViewer {
Iterator() {}
virtual ~Iterator() {}
private:
friend class RecordViewer;
bool operator==(Iterator const& other) const;
bool operator!=(const Iterator& rhs) const;
void operator++();
pointer operator->();
reference operator*();
private:
bool end_ = false;
uint64_t index_ = 0;
RecordViewer* viewer_ = nullptr;
value_type message_instance_;
};
public:
Iterator begin();
Iterator end();
......
......@@ -107,16 +107,19 @@ TEST(RecordTest, filter_test) {
RecordViewer viewer_0(reader);
EXPECT_EQ(CheckCount(viewer_0), 1000);
EXPECT_EQ(START_TIME, viewer_0.get_begin_time());
EXPECT_EQ(END_TIME - 1, viewer_0.get_end_time());
EXPECT_EQ(START_TIME, viewer_0.begin_time());
EXPECT_EQ(END_TIME - 1, viewer_0.end_time());
RecordViewer viewer_1(reader, END_TIME, END_TIME);
EXPECT_EQ(CheckCount(viewer_1), 0);
EXPECT_EQ(END_TIME, viewer_1.get_begin_time());
EXPECT_EQ(END_TIME, viewer_1.begin_time());
RecordViewer viewer_2(reader, END_TIME, START_TIME);
EXPECT_EQ(CheckCount(viewer_2), 0);
EXPECT_EQ(START_TIME, viewer_2.get_end_time());
EXPECT_EQ(START_TIME, viewer_2.end_time());
viewer_0.begin();
viewer_0.begin();
RecordViewer viewer_3(reader, 0, END_TIME);
EXPECT_EQ(CheckCount(viewer_3), 1000);
......@@ -124,6 +127,10 @@ TEST(RecordTest, filter_test) {
RecordViewer viewer_4(reader, START_TIME);
EXPECT_EQ(CheckCount(viewer_4), 1000);
auto it_1 = viewer_3.begin();
auto it_2 = viewer_4.begin();
EXPECT_FALSE(it_1 == it_2);
RecordViewer viewer_5(reader, 1500, 1600);
EXPECT_EQ(CheckCount(viewer_5), 101);
......@@ -132,6 +139,7 @@ TEST(RecordTest, filter_test) {
RecordViewer viewer_7(reader, 0, END_TIME, {CHANNEL_NAME_1});
EXPECT_EQ(CheckCount(viewer_7), 1000);
}
} // namespace record
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册