#ifndef POLSERVER_SOURCEFILECACHE_H #define POLSERVER_SOURCEFILECACHE_H #include #include #include #include namespace Pol::Bscript::Compiler { class SourceFile; class SourceFileIdentifier; class Profile; class Report; class SourceFileCache { public: explicit SourceFileCache( Profile& profile ) : keep( 0 ), profile( profile ) {} void configure( unsigned keep ); std::shared_ptr load( const SourceFileIdentifier&, Report& report ); void keep_some(); void clear(); private: unsigned keep; std::mutex mutex; std::map> files; std::map frequency; Profile& profile; }; } // namespace Pol::Bscript::Compiler #endif // POLSERVER_SOURCEFILECACHE_H