2024-09-30 17:10:43 +08:00
|
|
|
|
using System;
|
|
|
|
|
|
using JiShe.CollectBus.Protocol.Contracts.Interfaces;
|
2024-10-08 14:41:41 +08:00
|
|
|
|
using JiShe.CollectBus.Protocol.Contracts.Models;
|
2024-09-30 17:10:43 +08:00
|
|
|
|
using Microsoft.Extensions.Caching.Distributed;
|
|
|
|
|
|
|
|
|
|
|
|
namespace JiShe.CollectBus.Protocol.Contracts.Abstracts
|
|
|
|
|
|
{
|
|
|
|
|
|
public abstract class BaseProtocolPlugin:IProtocolPlugin
|
|
|
|
|
|
{
|
|
|
|
|
|
private readonly IDistributedCache _cache;
|
|
|
|
|
|
|
|
|
|
|
|
protected BaseProtocolPlugin(IDistributedCache cache)
|
|
|
|
|
|
{
|
|
|
|
|
|
_cache = cache;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-10-08 14:41:41 +08:00
|
|
|
|
public abstract ProtocolInfo Get();
|
2024-09-30 17:10:43 +08:00
|
|
|
|
|
|
|
|
|
|
public abstract void Received();
|
|
|
|
|
|
|
|
|
|
|
|
public abstract void Send();
|
|
|
|
|
|
|
|
|
|
|
|
public void Load()
|
|
|
|
|
|
{
|
|
|
|
|
|
var result = _cache.GetString("myKey");
|
|
|
|
|
|
if (result == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
result = "Calculated Data";
|
|
|
|
|
|
_cache.SetString("myKey", result, new DistributedCacheEntryOptions
|
|
|
|
|
|
{
|
|
|
|
|
|
AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(10)
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|