diff options
Diffstat (limited to 'src/zenserver/cache/cachetracking.h')
| -rw-r--r-- | src/zenserver/cache/cachetracking.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/zenserver/cache/cachetracking.h b/src/zenserver/cache/cachetracking.h new file mode 100644 index 000000000..fdfe1a4c7 --- /dev/null +++ b/src/zenserver/cache/cachetracking.h @@ -0,0 +1,41 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#pragma once + +#include <zencore/iohash.h> + +#include <stdint.h> +#include <filesystem> +#include <functional> + +namespace zen { + +#define ZEN_USE_CACHE_TRACKER 0 +#if ZEN_USE_CACHE_TRACKER + +class CbObject; + +/** + */ + +class ZenCacheTracker +{ +public: + ZenCacheTracker(std::filesystem::path StateDirectory); + ~ZenCacheTracker(); + + void TrackAccess(std::string_view BucketSegment, const IoHash& HashKey); + void SaveSnapshot(); + void IterateSnapshots(std::function<void(uint64_t TimeStamp, CbObject Snapshot)>&& Callback); + +private: + struct Impl; + + Impl* m_Impl = nullptr; +}; + +void cachetracker_forcelink(); + +#endif // ZEN_USE_CACHE_TRACKER + +} // namespace zen |