Skip to content

sgns::crdt::DAGSyncer

A DAGSyncer is an abstraction to an IPLD-based p2p storage layer. A DAGSyncer is a DAGService with the ability to publish new ipld nodes to the network, and retrieving others from it.

#include <dagsyncer.hpp>

Inherits from ipfs_lite::ipfs::merkledag::MerkleDagService

Inherited by sgns::crdt::GraphsyncDAGSyncer

Public Types

Name
using std::pair< CID, std::string > LinkInfoPair
using std::set< LinkInfoPair > LinkInfoSet

Public Functions

Name
virtual outcome::result< bool > HasBlock(const CID & cid) const =0
virtual outcome::result< std::shared_ptr< ipfs_lite::ipld::IPLDNode > > GetNodeWithoutRequest(const CID & cid) const =0
virtual std::pair< LinkInfoSet, LinkInfoSet > TraverseCIDsLinks(ipfs_lite::ipld::IPLDNode & node, std::string link_name, LinkInfoSet visited_links) const =0
virtual void InitCIDBlock(const CID & cid) =0
virtual bool IsCIDInCache(const CID & cid) const =0
virtual outcome::result< void > DeleteCIDBlock(const CID & cid) =0
virtual void Stop() =0
virtual IPFS::outcome::result< void > markResolved(const CID & cid) =0
virtual IPFS::outcome::result< bool > isResolved(const CID & cid) const =0

Public Types Documentation

using LinkInfoPair

using sgns::crdt::DAGSyncer::LinkInfoPair = std::pair<CID, std::string>;

using LinkInfoSet

using sgns::crdt::DAGSyncer::LinkInfoSet = std::set<LinkInfoPair>;

Public Functions Documentation

function HasBlock

virtual outcome::result< bool > HasBlock(
    const CID & cid
) const =0

Parameters:

  • cid Content identifier of the node

Return: true if the block is locally available or outcome::failure on error

Reimplemented by: sgns::crdt::GraphsyncDAGSyncer::HasBlock

Check if the block with cid is locally available (therefore, it is considered processed).

function GetNodeWithoutRequest

virtual outcome::result< std::shared_ptr< ipfs_lite::ipld::IPLDNode > > GetNodeWithoutRequest(
    const CID & cid
) const =0

Reimplemented by: sgns::crdt::GraphsyncDAGSyncer::GetNodeWithoutRequest

virtual std::pair< LinkInfoSet, LinkInfoSet > TraverseCIDsLinks(
    ipfs_lite::ipld::IPLDNode & node,
    std::string link_name,
    LinkInfoSet visited_links
) const =0

Reimplemented by: sgns::crdt::GraphsyncDAGSyncer::TraverseCIDsLinks

function InitCIDBlock

virtual void InitCIDBlock(
    const CID & cid
) =0

Reimplemented by: sgns::crdt::GraphsyncDAGSyncer::InitCIDBlock

function IsCIDInCache

virtual bool IsCIDInCache(
    const CID & cid
) const =0

Reimplemented by: sgns::crdt::GraphsyncDAGSyncer::IsCIDInCache

function DeleteCIDBlock

virtual outcome::result< void > DeleteCIDBlock(
    const CID & cid
) =0

Reimplemented by: sgns::crdt::GraphsyncDAGSyncer::DeleteCIDBlock

function Stop

virtual void Stop() =0

Reimplemented by: sgns::crdt::GraphsyncDAGSyncer::Stop

function markResolved

virtual IPFS::outcome::result< void > markResolved(
    const CID & cid
) =0

Reimplemented by: sgns::crdt::GraphsyncDAGSyncer::markResolved

function isResolved

virtual IPFS::outcome::result< bool > isResolved(
    const CID & cid
) const =0

Reimplemented by: sgns::crdt::GraphsyncDAGSyncer::isResolved


Updated on 2026-03-04 at 13:10:43 -0800