]> git.cworth.org Git - apitrace/blobdiff - trace_parser.hpp
Merge remote-tracking branch 'origin/master' into on-demand-loading
[apitrace] / trace_parser.hpp
index 634cb59bc8a9bfdf921fb74ea4f03b8f330de9e5..a000986c3631299292745dc213dca060406938d2 100644 (file)
 #include <iostream>
 #include <list>
 
+#include "trace_file.hpp"
 #include "trace_format.hpp"
 #include "trace_model.hpp"
 
 
 namespace Trace {
 
-
 class Parser
 {
 protected:
-    void *file;
+    File *file;
 
     typedef std::list<Call *> CallList;
     CallList calls;
 
-    typedef std::vector<Call::Signature *> FunctionMap;
+    typedef std::vector<FunctionSig *> FunctionMap;
     FunctionMap functions;
 
-    typedef std::vector<Struct::Signature *> StructMap;
+    typedef std::vector<StructSig *> StructMap;
     StructMap structs;
 
-    typedef std::vector<Enum::Signature *> EnumMap;
+    typedef std::vector<EnumSig *> EnumMap;
     EnumMap enums;
 
     typedef std::vector<BitmaskSig *> BitmaskMap;
@@ -72,6 +72,21 @@ public:
 
     Call *parse_call(void);
 
+    bool supportsOffsets() const
+    {
+        return file-supportsOffsets();
+    }
+
+    File::Offset currentOffset()
+    {
+        return file->currentOffset();
+    }
+
+    void setCurrentOffset(const File::Offset &offset)
+    {
+        file->setCurrentOffset(offset);
+    }
+
 protected:
     void parse_enter(void);