#ifndef __TRACYSOURCECONTENTS_HPP__ #define __TRACYSOURCECONTENTS_HPP__ #include #include #include #include "TracySourceTokenizer.hpp" namespace tracy { class View; class Worker; class SourceContents { public: SourceContents(); ~SourceContents(); void Parse( const char* fileName, const Worker& worker, const View& view ); const std::vector& get() const { return m_lines; } bool empty() const { return m_lines.empty(); } const char* filename() const { return m_file; } uint32_t idx() const { return m_fileStringIdx; } bool is_cached() const { return m_data != m_dataBuf; } const char* data() const { return m_data; } size_t data_size() const { return m_dataSize; } private: const char* m_file; uint32_t m_fileStringIdx; const char* m_data; char* m_dataBuf; size_t m_dataSize; std::vector m_lines; }; } #endif