Files
Main/Assets/Plugins/References/FuncellBase/ObjectPool/PooledObjectWrapper.cs
2025-01-25 04:38:09 +08:00

42 lines
1.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
namespace Thousandto.Core.Base
{
public class PooledObjectWrapper<T> : PooledObject
{
public MyAction<T> WrapperReleaseResourcesAction { get; set; }
public MyAction<T> WrapperResetStateAction { get; set; }
public T InternalResource { get; private set; }
public PooledObjectWrapper(T resource)
{
if (resource == null)
{
throw new ArgumentException("resource cannot be null");
}
// Setting the internal resource
InternalResource = resource;
}
protected override void OnReleaseResources()
{
if (WrapperReleaseResourcesAction != null)
{
WrapperReleaseResourcesAction(InternalResource);
}
}
protected override void OnResetState()
{
if (WrapperResetStateAction != null)
{
WrapperResetStateAction(InternalResource);
}
}
}
}