aboutsummaryrefslogtreecommitdiffstats
path: root/swarm/storage/ldbstore.go
diff options
context:
space:
mode:
authorholisticode <holistic.computing@gmail.com>2019-02-07 22:49:19 +0800
committerRafael Matias <rafael@skyle.net>2019-02-19 20:06:13 +0800
commitd1ace4f344616fb6fa8643872c1f9cac89f8549e (patch)
tree807c6d7af3875e3aedc5fe6b24c463205cffab19 /swarm/storage/ldbstore.go
parent637a75d61a13ee8a89a702a2eadb5ace3c79e7da (diff)
downloaddexon-d1ace4f344616fb6fa8643872c1f9cac89f8549e.tar.gz
dexon-d1ace4f344616fb6fa8643872c1f9cac89f8549e.tar.zst
dexon-d1ace4f344616fb6fa8643872c1f9cac89f8549e.zip
swarm: Debug API and HasChunks() API endpoint (#18980)
(cherry picked from commit 41597c2856d6ac7328baca1340c3e36ab0edd382)
Diffstat (limited to 'swarm/storage/ldbstore.go')
-rw-r--r--swarm/storage/ldbstore.go12
1 files changed, 12 insertions, 0 deletions
diff --git a/swarm/storage/ldbstore.go b/swarm/storage/ldbstore.go
index 635d33429..a2f24eff0 100644
--- a/swarm/storage/ldbstore.go
+++ b/swarm/storage/ldbstore.go
@@ -969,6 +969,18 @@ func (s *LDBStore) Get(_ context.Context, addr Address) (chunk Chunk, err error)
return s.get(addr)
}
+// Has queries the underlying DB if a chunk with the given address is stored
+// Returns true if the chunk is found, false if not
+func (s *LDBStore) Has(_ context.Context, addr Address) bool {
+ s.lock.RLock()
+ defer s.lock.RUnlock()
+
+ ikey := getIndexKey(addr)
+ _, err := s.db.Get(ikey)
+
+ return err == nil
+}
+
// TODO: To conform with other private methods of this object indices should not be updated
func (s *LDBStore) get(addr Address) (chunk *chunk, err error) {
if s.closed {