| /* | |
| * Copyright 2025 Google LLC | |
| * | |
| * Use of this source code is governed by a BSD-style license that can be | |
| * found in the LICENSE file. | |
| */ | |
| #ifndef SkSynchronizedResourceCache_DEFINED | |
| #define SkSynchronizedResourceCache_DEFINED | |
| #include "include/private/base/SkDebug.h" | |
| #include "include/private/base/SkMutex.h" | |
| #include "src/core/SkResourceCache.h" | |
| #include <cstddef> | |
| class SkCachedData; | |
| class SkSynchronizedResourceCache : public SkResourceCache { | |
| public: | |
| bool find(const Key& key, FindVisitor, void* context) override; | |
| void add(Rec*, void* payload = nullptr) override; | |
| void visitAll(Visitor, void* context) override; | |
| size_t getTotalBytesUsed() const override; | |
| size_t getTotalByteLimit() const override; | |
| size_t setTotalByteLimit(size_t newLimit) override; | |
| size_t setSingleAllocationByteLimit(size_t) override; | |
| size_t getSingleAllocationByteLimit() const override; | |
| size_t getEffectiveSingleAllocationByteLimit() const override; | |
| void purgeAll() override; | |
| DiscardableFactory discardableFactory() const override; | |
| SkCachedData* newCachedData(size_t bytes) override; | |
| void dump() const override; | |
| SkSynchronizedResourceCache(DiscardableFactory); | |
| explicit SkSynchronizedResourceCache(size_t byteLimit); | |
| ~SkSynchronizedResourceCache() override; | |
| private: | |
| mutable SkMutex fMutex; | |
| }; | |
| #endif |