void setFrameMarker(Loader::FrameMarker marker);
int numberOfFrames() const;
- int numberOfCallsInFrame(int frameIdx);
+ int numberOfCallsInFrame(int frameIdx) const;
bool open(const char *filename);
void close();
std::vector<Trace::Call*> frame(int idx);
private:
- struct FrameOffset {
- FrameOffset()
+ struct FrameBookmark {
+ FrameBookmark()
: numberOfCalls(0)
{}
- FrameOffset(const File::Offset &s,
- const File::Offset &e)
+ FrameBookmark(const ParseBookmark &s)
: start(s),
- end(e),
numberOfCalls(0)
{}
- File::Offset start;
- File::Offset end;
+ ParseBookmark start;
int numberOfCalls;
};
bool isCallAFrameMarker(const Trace::Call *call) const;
Trace::Parser m_parser;
FrameMarker m_frameMarker;
- std::map<int, Trace::Frame*> m_frameCache;
- std::queue<Trace::Frame*> m_loadedFrames;
-
- std::map<int, FrameOffset> m_frameOffsets;
-
- Trace::File *file;
+ typedef std::map<int, FrameBookmark> FrameBookmarks;
+ FrameBookmarks m_frameBookmarks;
};
}