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)); } } }