2025-01-16 11:31:50 +01:00
|
|
|
|
using Utils;
|
2024-08-01 09:09:30 +02:00
|
|
|
|
|
2025-01-16 11:31:50 +01:00
|
|
|
|
namespace CodexClient.Hooks
|
2024-07-26 08:39:27 +02:00
|
|
|
|
{
|
|
|
|
|
|
public interface ICodexHooksProvider
|
|
|
|
|
|
{
|
|
|
|
|
|
ICodexNodeHooks CreateHooks(string nodeName);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public class CodexHooksFactory
|
|
|
|
|
|
{
|
2025-01-29 14:44:19 +01:00
|
|
|
|
public List<ICodexHooksProvider> Providers { get; } = new List<ICodexHooksProvider>();
|
2024-07-26 08:39:27 +02:00
|
|
|
|
|
|
|
|
|
|
public ICodexNodeHooks CreateHooks(string nodeName)
|
|
|
|
|
|
{
|
2025-01-29 14:44:19 +01:00
|
|
|
|
if (Providers.Count == 0) return new DoNothingCodexHooks();
|
|
|
|
|
|
|
|
|
|
|
|
var hooks = Providers.Select(p => p.CreateHooks(nodeName)).ToArray();
|
|
|
|
|
|
return new MuxingCodexNodeHooks(hooks);
|
2024-07-26 08:39:27 +02:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public class DoNothingHooksProvider : ICodexHooksProvider
|
|
|
|
|
|
{
|
|
|
|
|
|
public ICodexNodeHooks CreateHooks(string nodeName)
|
|
|
|
|
|
{
|
|
|
|
|
|
return new DoNothingCodexHooks();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public class DoNothingCodexHooks : ICodexNodeHooks
|
|
|
|
|
|
{
|
2024-08-01 09:09:30 +02:00
|
|
|
|
public void OnFileDownloaded(ByteSize size, ContentId cid)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void OnFileDownloading(ContentId cid)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void OnFileUploaded(string uid, ByteSize size, ContentId cid)
|
2024-07-26 08:39:27 +02:00
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-08-01 09:09:30 +02:00
|
|
|
|
public void OnFileUploading(string uid, ByteSize size)
|
2024-07-26 08:39:27 +02:00
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-01-29 14:44:19 +01:00
|
|
|
|
public void OnNodeStarted(ICodexNode node, string peerId, string nodeId)
|
2024-07-29 10:16:37 +02:00
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-08-20 12:13:42 +02:00
|
|
|
|
public void OnNodeStarting(DateTime startUtc, string image, EthAccount? ethAccount)
|
2024-07-26 08:39:27 +02:00
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void OnNodeStopping()
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
2024-08-20 12:13:42 +02:00
|
|
|
|
|
|
|
|
|
|
public void OnStorageAvailabilityCreated(StorageAvailability response)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void OnStorageContractSubmitted(StoragePurchaseContract storagePurchaseContract)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void OnStorageContractUpdated(StoragePurchase purchaseStatus)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
2024-07-26 08:39:27 +02:00
|
|
|
|
}
|
|
|
|
|
|
}
|