2024-10-12 23:42:15 +08:00

39 lines
1.0 KiB
C#

using System;
using JiShe.CollectBus.Protocol.Contracts.Interfaces;
using JiShe.CollectBus.Protocol.Contracts.Models;
using Microsoft.Extensions.Caching.Distributed;
using TouchSocket.Sockets;
namespace JiShe.CollectBus.Protocol.Contracts.Abstracts
{
public abstract class BaseProtocolPlugin:IProtocolPlugin
{
private readonly IDistributedCache _cache;
protected BaseProtocolPlugin(IDistributedCache cache)
{
_cache = cache;
}
public abstract ProtocolInfo Get();
public abstract void Received(ReceivedDataEventArgs e);
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)
});
}
}
}
}