This commit is contained in:
Andrew Camilleri
2025-02-13 21:28:08 +01:00
parent f6ecc8fd72
commit 8046d11ee4
3 changed files with 51 additions and 51 deletions

View File

@@ -1,48 +1,48 @@
using System;
using System.Threading;
using NNostr.Client;
namespace BTCPayServer.Plugins.NIP05;
public class NostrClientWrapper : IDisposable
{
public INostrClient Client { get; private set; }
private int _usageCount = 0;
private bool _isDisposed = false;
private DateTimeOffset _lastUsed;
public NostrClientWrapper(INostrClient client)
{
Client = client;
_lastUsed = DateTimeOffset.UtcNow;
}
public void IncrementUsage()
{
_lastUsed = DateTimeOffset.UtcNow;
Interlocked.Increment(ref _usageCount);
}
public void DecrementUsage()
{
_lastUsed = DateTimeOffset.UtcNow;
if (Interlocked.Decrement(ref _usageCount) == 0 && IsExpired())
{
Dispose();
}
}
public bool IsExpired()
{
return DateTimeOffset.UtcNow - _lastUsed > TimeSpan.FromMinutes(5);
}
public void Dispose()
{
if (!_isDisposed)
{
Client.Dispose();
_isDisposed = true;
}
}
}
// using System;
// using System.Threading;
// using NNostr.Client;
//
// namespace BTCPayServer.Plugins.NIP05;
//
// public class NostrClientWrapper : IDisposable
// {
// public INostrClient Client { get; private set; }
// private int _usageCount = 0;
// private bool _isDisposed = false;
// private DateTimeOffset _lastUsed;
//
// public NostrClientWrapper(INostrClient client)
// {
// Client = client;
// _lastUsed = DateTimeOffset.UtcNow;
// }
//
// public void IncrementUsage()
// {
// _lastUsed = DateTimeOffset.UtcNow;
// Interlocked.Increment(ref _usageCount);
// }
//
// public void DecrementUsage()
// {
// _lastUsed = DateTimeOffset.UtcNow;
// if (Interlocked.Decrement(ref _usageCount) == 0 && IsExpired())
// {
// Dispose();
// }
// }
//
// public bool IsExpired()
// {
// return DateTimeOffset.UtcNow - _lastUsed > TimeSpan.FromMinutes(5);
// }
//
// public void Dispose()
// {
// if (!_isDisposed)
// {
// Client.Dispose();
// _isDisposed = true;
// }
// }
// }