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 ICodexNodeHooks
|
|
|
|
|
|
{
|
2024-08-20 11:44:15 +02:00
|
|
|
|
void OnNodeStarting(DateTime startUtc, string image, EthAccount? ethAccount);
|
2025-01-29 14:44:19 +01:00
|
|
|
|
void OnNodeStarted(ICodexNode node, string peerId, string nodeId);
|
2024-07-26 08:39:27 +02:00
|
|
|
|
void OnNodeStopping();
|
2024-08-01 09:09:30 +02:00
|
|
|
|
void OnFileUploading(string uid, ByteSize size);
|
|
|
|
|
|
void OnFileUploaded(string uid, ByteSize size, ContentId cid);
|
|
|
|
|
|
void OnFileDownloading(ContentId cid);
|
|
|
|
|
|
void OnFileDownloaded(ByteSize size, ContentId cid);
|
2024-08-20 11:44:15 +02:00
|
|
|
|
void OnStorageContractSubmitted(StoragePurchaseContract storagePurchaseContract);
|
|
|
|
|
|
void OnStorageContractUpdated(StoragePurchase purchaseStatus);
|
2024-08-20 12:13:42 +02:00
|
|
|
|
void OnStorageAvailabilityCreated(StorageAvailability response);
|
2024-07-26 08:39:27 +02:00
|
|
|
|
}
|
2025-01-29 14:44:19 +01:00
|
|
|
|
|
|
|
|
|
|
public class MuxingCodexNodeHooks : ICodexNodeHooks
|
|
|
|
|
|
{
|
|
|
|
|
|
private readonly ICodexNodeHooks[] backingHooks;
|
|
|
|
|
|
|
|
|
|
|
|
public MuxingCodexNodeHooks(ICodexNodeHooks[] backingHooks)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.backingHooks = backingHooks;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void OnFileDownloaded(ByteSize size, ContentId cid)
|
|
|
|
|
|
{
|
|
|
|
|
|
foreach (var h in backingHooks) h.OnFileDownloaded(size, cid);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void OnFileDownloading(ContentId cid)
|
|
|
|
|
|
{
|
|
|
|
|
|
foreach (var h in backingHooks) h.OnFileDownloading(cid);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void OnFileUploaded(string uid, ByteSize size, ContentId cid)
|
|
|
|
|
|
{
|
|
|
|
|
|
foreach (var h in backingHooks) h.OnFileUploaded(uid, size, cid);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void OnFileUploading(string uid, ByteSize size)
|
|
|
|
|
|
{
|
|
|
|
|
|
foreach (var h in backingHooks) h.OnFileUploading(uid, size);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void OnNodeStarted(ICodexNode node, string peerId, string nodeId)
|
|
|
|
|
|
{
|
|
|
|
|
|
foreach (var h in backingHooks) h.OnNodeStarted(node, peerId, nodeId);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void OnNodeStarting(DateTime startUtc, string image, EthAccount? ethAccount)
|
|
|
|
|
|
{
|
|
|
|
|
|
foreach (var h in backingHooks) h.OnNodeStarting(startUtc, image, ethAccount);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void OnNodeStopping()
|
|
|
|
|
|
{
|
|
|
|
|
|
foreach (var h in backingHooks) h.OnNodeStopping();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void OnStorageAvailabilityCreated(StorageAvailability response)
|
|
|
|
|
|
{
|
|
|
|
|
|
foreach (var h in backingHooks) h.OnStorageAvailabilityCreated(response);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void OnStorageContractSubmitted(StoragePurchaseContract storagePurchaseContract)
|
|
|
|
|
|
{
|
|
|
|
|
|
foreach (var h in backingHooks) h.OnStorageContractSubmitted(storagePurchaseContract);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void OnStorageContractUpdated(StoragePurchase purchaseStatus)
|
|
|
|
|
|
{
|
|
|
|
|
|
foreach (var h in backingHooks) h.OnStorageContractUpdated(purchaseStatus);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-07-26 08:39:27 +02:00
|
|
|
|
}
|