src/crdt/dagsyncer.hpp¶
Namespaces¶
| Name |
|---|
| sgns |
| sgns::crdt |
Classes¶
| Name | |
|---|---|
| class | 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. |
Source code¶
#ifndef SUPERGENIUS_DAGSYNCER_HPP
#define SUPERGENIUS_DAGSYNCER_HPP
#include <primitives/cid/cid.hpp>
#include <ipfs_lite/ipfs/merkledag/merkledag_service.hpp>
#include "outcome/outcome.hpp"
#include <set>
namespace sgns::crdt
{
class DAGSyncer : public ipfs_lite::ipfs::merkledag::MerkleDagService
{
public:
using LinkInfoPair = std::pair<CID, std::string>;
using LinkInfoSet = std::set<LinkInfoPair>;
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;
};
} // namespace sgns::crdt
#endif // SUPERGENIUS_DAGSYNCER_HPP
Updated on 2026-03-04 at 13:10:44 -0800