]> git.cworth.org Git - apitrace/blobdiff - trace_parser.hpp
Encapsulate on parser state in structure.
[apitrace] / trace_parser.hpp
index 962c323d4d9ef379e8a0c074bf3962fcd813fc9d..d76ffb49868e208b21a59890cd5109c2905e6c58 100644 (file)
 
 namespace Trace {
 
+
+struct ParseBookmark
+{
+    File::Offset offset;
+    unsigned next_call_no;
+};
+
+
 class Parser
 {
 protected:
@@ -92,24 +100,14 @@ public:
         return file->supportsOffsets();
     }
 
-    File::Offset currentOffset()
-    {
-        return file->currentOffset();
-    }
-
-    void setCurrentOffset(const File::Offset &offset)
-    {
-        file->setCurrentOffset(offset);
+    void getBookmark(ParseBookmark &bookmark) {
+        bookmark.offset = file->currentOffset();
+        bookmark.next_call_no = next_call_no;
     }
 
-    unsigned currentCallNumber() const
-    {
-        return next_call_no;
-    }
-
-    void setCurrentCallNumber(unsigned num)
-    {
-        next_call_no = num;
+    void setBookmark(const ParseBookmark &bookmark) {
+        file->setCurrentOffset(bookmark.offset);
+        next_call_no = bookmark.next_call_no;
     }
 
     int percentRead()