using Umbraco.Core.Sync;
namespace Umbraco.Core.Cache
{
///
/// Provides a base class for "payload" cache refreshers.
///
/// The actual cache refresher type.
/// Ensures that the correct events are raised when cache refreshing occurs.
public abstract class PayloadCacheRefresherBase : JsonCacheRefresherBase, IPayloadCacheRefresher
where TInstance : ICacheRefresher
{
protected PayloadCacheRefresherBase(CacheHelper cacheHelper) : base(cacheHelper)
{
}
protected abstract object Deserialize(string json);
public override void Refresh(string json)
{
var payload = Deserialize(json);
Refresh(payload);
}
public virtual void Refresh(object payload)
{
OnCacheUpdated(Instance, new CacheRefresherEventArgs(payload, MessageType.RefreshByPayload));
}
}
}