7
7
8
8
#include < boost/assert.hpp>
9
9
#include < libp2p/multi/content_identifier_codec.hpp>
10
- #include " storage/ipfs/merkledag/ impl/node_impl .hpp"
10
+ #include " storage/ipld/ impl/ipld_node_impl .hpp"
11
11
12
12
using libp2p::multi::ContentIdentifierCodec;
13
13
14
14
namespace fc ::storage::ipfs::merkledag {
15
+ using ipld::IPLDNodeImpl;
16
+
15
17
MerkleDagServiceImpl::MerkleDagServiceImpl (
16
18
std::shared_ptr<IpfsDatastore> service)
17
19
: block_service_{std::move (service)} {
@@ -20,14 +22,14 @@ namespace fc::storage::ipfs::merkledag {
20
22
}
21
23
22
24
outcome::result<void > MerkleDagServiceImpl::addNode (
23
- std::shared_ptr<const Node > node) {
25
+ std::shared_ptr<const IPLDNode > node) {
24
26
return block_service_->set (node->getCID (), node->getRawBytes ());
25
27
}
26
28
27
- outcome::result<std::shared_ptr<Node >> MerkleDagServiceImpl::getNode (
29
+ outcome::result<std::shared_ptr<IPLDNode >> MerkleDagServiceImpl::getNode (
28
30
const CID &cid) const {
29
31
OUTCOME_TRY (content, block_service_->get (cid));
30
- return NodeImpl ::createFromRawBytes (content);
32
+ return IPLDNodeImpl ::createFromRawBytes (content);
31
33
}
32
34
33
35
outcome::result<void > MerkleDagServiceImpl::removeNode (const CID &cid) {
@@ -37,15 +39,15 @@ namespace fc::storage::ipfs::merkledag {
37
39
outcome::result<size_t > MerkleDagServiceImpl::select (
38
40
gsl::span<const uint8_t > root_cid,
39
41
gsl::span<const uint8_t > selector,
40
- std::function<bool (std::shared_ptr<const Node >)> handler) const {
42
+ std::function<bool (std::shared_ptr<const IPLDNode >)> handler) const {
41
43
std::ignore = selector;
42
44
OUTCOME_TRY (content_id, ContentIdentifierCodec::decode (root_cid));
43
45
CID cid{std::move (content_id)};
44
46
OUTCOME_TRY (root_node, getNode (cid));
45
- std::vector<std::shared_ptr<const Node >> node_set{};
47
+ std::vector<std::shared_ptr<const IPLDNode >> node_set{};
46
48
node_set.emplace_back (std::move (root_node));
47
49
const auto &links = node_set.front ()->getLinks ();
48
- for (const auto & link : links) {
50
+ for (const auto & link : links) {
49
51
auto request = getNode (link .get ().getCID ());
50
52
if (request.has_error ()) return ServiceError::UNRESOLVED_LINK;
51
53
node_set.emplace_back (std::move (request.value ()));
@@ -79,7 +81,7 @@ namespace fc::storage::ipfs::merkledag {
79
81
80
82
outcome::result<void > MerkleDagServiceImpl::buildGraph (
81
83
const std::shared_ptr<LeafImpl> &root,
82
- const std::vector<std::reference_wrapper<const Link >> &links,
84
+ const std::vector<std::reference_wrapper<const IPLDLink >> &links,
83
85
bool depth_limit,
84
86
const size_t max_depth,
85
87
size_t current_depth) const {
@@ -89,7 +91,7 @@ namespace fc::storage::ipfs::merkledag {
89
91
for (const auto &link : links) {
90
92
auto request = getNode (link .get ().getCID ());
91
93
if (request.has_error ()) return ServiceError::UNRESOLVED_LINK;
92
- std::shared_ptr<Node > node = request.value ();
94
+ std::shared_ptr<IPLDNode > node = request.value ();
93
95
auto child_leaf = std::make_shared<LeafImpl>(node->content ());
94
96
auto build_result = buildGraph (child_leaf,
95
97
node->getLinks (),
0 commit comments