From d734e1a89be238c082cf920fd27288ff9369a860 Mon Sep 17 00:00:00 2001 From: Derrick Hammer Date: Wed, 24 Jan 2024 02:32:49 -0500 Subject: [PATCH] feat: create provider store interface for use in hash query --- interfaces/node.go | 2 ++ interfaces/provider_store.go | 11 +++++++++++ node/node.go | 9 +++++++++ 3 files changed, 22 insertions(+) create mode 100644 interfaces/provider_store.go diff --git a/interfaces/node.go b/interfaces/node.go index 5f7d710..6ee921b 100644 --- a/interfaces/node.go +++ b/interfaces/node.go @@ -29,4 +29,6 @@ type Node interface { GetMetadataByCID(cid *encoding.CID) (metadata.Metadata, error) WaitOnConnectedPeers() ConnectionTracker() *sync.WaitGroup + SetProviderStore(store ProviderStore) + ProviderStore() ProviderStore } diff --git a/interfaces/provider_store.go b/interfaces/provider_store.go new file mode 100644 index 0000000..315dc21 --- /dev/null +++ b/interfaces/provider_store.go @@ -0,0 +1,11 @@ +package interfaces + +import ( + "git.lumeweb.com/LumeWeb/libs5-go/encoding" + "git.lumeweb.com/LumeWeb/libs5-go/types" +) + +type ProviderStore interface { + CanProvide(hash *encoding.Multihash, kind []types.StorageLocationType) bool + Provide(hash *encoding.Multihash, kind []types.StorageLocationType) (StorageLocation, error) +} diff --git a/node/node.go b/node/node.go index 4146ec2..553175f 100644 --- a/node/node.go +++ b/node/node.go @@ -34,6 +34,7 @@ type NodeImpl struct { services interfaces.Services httpClient *resty.Client connections sync.WaitGroup + providerStore interfaces.ProviderStore } func (n *NodeImpl) NetworkId() string { @@ -333,3 +334,11 @@ func (n *NodeImpl) WaitOnConnectedPeers() { func (n *NodeImpl) ConnectionTracker() *sync.WaitGroup { return &n.connections } + +func (n *NodeImpl) SetProviderStore(store interfaces.ProviderStore) { + n.providerStore = store +} + +func (n *NodeImpl) ProviderStore() interfaces.ProviderStore { + return n.providerStore +}