// Copyright (c) 2012-2022 Wojciech Figat. All rights reserved.
#pragma once
#include "Engine/Serialization/ISerializeModifier.h"
#include "Engine/Core/Collections/CollectionPoolCache.h"
///
/// Acceleration structure used to improve operations performed by the Engine. Cache the data and allows to reuse memory container for less allocations at runtime. It's a thread-safe.
///
class Cache
{
public:
static void ISerializeModifierClearCallback(ISerializeModifier* obj);
public:
///
/// Gets the ISerializeModifier lookup cache. Safe allocation, per thread, uses caching.
///
static CollectionPoolCache ISerializeModifier;
public:
///
/// Releases all the allocated resources (existing in the pool that are not during usage).
///
static void Release();
};