diff options
author | Zack Rusin <zack@kde.org> | 2011-09-02 01:08:49 -0400 |
---|---|---|
committer | Zack Rusin <zack@kde.org> | 2011-09-02 01:08:49 -0400 |
commit | 46c4a32730c5b52c119376042a84a6773d8d789f (patch) | |
tree | 636f481242573faea221c9ae957c161363e0faaf /trace_parser.hpp | |
parent | f562f318ddee6da2041696887e2195fc3c96d740 (diff) |
Implement scanning/skipping of fragments of the trace
for the initial scan. unfortunately it's not the improvement we
were looking for. (from 11.9 to about 9.2 secs on a 240mb trace).
Diffstat (limited to 'trace_parser.hpp')
-rw-r--r-- | trace_parser.hpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/trace_parser.hpp b/trace_parser.hpp index f340da0..1f87b6f 100644 --- a/trace_parser.hpp +++ b/trace_parser.hpp @@ -112,6 +112,8 @@ public: next_call_no = num; } + Call *scan_call(); + protected: void parse_enter(void); @@ -150,6 +152,45 @@ protected: unsigned long long read_uint(void); inline int read_byte(void); + +protected: + void scan_enter(void); + + Call *scan_leave(void); + + bool scan_call_details(Call *call); + + void scan_arg(Call *call); + + void scan_value(void); + + void scan_sint(); + + void scan_uint(); + + void scan_float(); + + void scan_double(); + + void scan_string(); + + void scan_enum(); + + void scan_bitmask(); + + void scan_array(void); + + void scan_blob(void); + + void scan_struct(); + + void scan_opaque(); + + void skip_string(void); + + void skip_uint(void); + + inline void skip_byte(void); }; |