/* * Copyright 2008-2010, Ingo Weinhold, ingo_weinhold@gmx.de. * Distributed under the terms of the MIT License. */ #ifndef BASIC_PROFILE_RESULT_H #define BASIC_PROFILE_RESULT_H #include "ProfileResult.h" class BasicImageProfileResult : public ImageProfileResult, public DoublyLinkedListLinkImpl { public: BasicImageProfileResult(SharedImage* image, image_id id); virtual ~BasicImageProfileResult(); status_t Init(); inline bool AddHit(addr_t address); inline void AddUnknownHit(); inline void AddSymbolHit(int32 symbolIndex); inline void AddImageHit(); inline const int64* SymbolHits() const; inline int64 UnknownHits() const; private: int64* fSymbolHits; int64 fUnknownHits; }; class BasicProfileResult : public ProfileResult { public: BasicProfileResult(); virtual void AddExpectedTicks(int32 expected); virtual void AddDroppedTicks(int32 dropped); virtual void PrintResults( ImageProfileResultContainer* container); virtual status_t GetImageProfileResult(SharedImage* image, image_id id, ImageProfileResult*& _imageResult); protected: int64 fTotalTicks; int64 fUnkownTicks; int64 fExpectedTicks; int64 fDroppedTicks; int64 fTotalSampleCount; }; class InclusiveProfileResult : public BasicProfileResult { public: virtual void AddSamples( ImageProfileResultContainer* container, addr_t* samples, int32 sampleCount); }; class ExclusiveProfileResult : public BasicProfileResult { public: virtual void AddSamples( ImageProfileResultContainer* container, addr_t* samples, int32 sampleCount); }; #endif // BASIC_PROFILE_RESULT_H