src/account/Migration0_2_0To1_0_0.hpp¶
Versioned migration manager and migration step interface. More...
Namespaces¶
| Name |
|---|
| sgns |
Classes¶
| Name | |
|---|---|
| class | sgns::Migration0_2_0To1_0_0 Migration step for version 0.2.0 to 1.0.0. |
Detailed Description¶
Versioned migration manager and migration step interface.
Date: 2025-05-29 Luiz Guilherme Rizzatto Zucchi Henrique A. Klein ([email protected])
Source code¶
#pragma once
#include <memory>
#include <string>
#include <deque>
#include <cstdint>
#include <boost/asio/io_context.hpp>
#include <ipfs_pubsub/gossip_pubsub_topic.hpp>
#include "base/logger.hpp"
#include "upnp.hpp"
#include "crdt/globaldb/globaldb.hpp"
#include "outcome/outcome.hpp"
#include <ipfs_lite/ipfs/graphsync/impl/network/network.hpp>
#include <ipfs_lite/ipfs/graphsync/impl/local_requests.hpp>
#include <libp2p/protocol/common/asio/asio_scheduler.hpp>
#include "IMigrationStep.hpp"
namespace sgns
{
class Migration0_2_0To1_0_0 : public IMigrationStep
{
public:
Migration0_2_0To1_0_0( std::shared_ptr<boost::asio::io_context> ioContext,
std::shared_ptr<ipfs_pubsub::GossipPubSub> pubSub,
std::shared_ptr<ipfs_lite::ipfs::graphsync::Network> graphsync,
std::shared_ptr<libp2p::protocol::Scheduler> scheduler,
std::shared_ptr<ipfs_lite::ipfs::graphsync::RequestIdGenerator> generator,
std::string writeBasePath,
std::string base58key );
std::string FromVersion() const override;
std::string ToVersion() const override;
outcome::result<void> Init() override;
outcome::result<bool> IsRequired() const override;
outcome::result<void> Apply() override;
outcome::result<void> ShutDown() override;
private:
outcome::result<std::shared_ptr<crdt::GlobalDB>> InitTargetDb();
outcome::result<std::shared_ptr<crdt::GlobalDB>> InitLegacyDb( const std::string &suffix );
outcome::result<uint32_t> MigrateDb( const std::shared_ptr<crdt::GlobalDB> &oldDb,
const std::shared_ptr<crdt::GlobalDB> &newDb );
std::shared_ptr<crdt::GlobalDB> db_1_0_0_;
std::shared_ptr<crdt::GlobalDB> db_0_0_2_out_;
std::shared_ptr<crdt::GlobalDB> db_0_0_2_in_;
std::shared_ptr<boost::asio::io_context> ioContext_;
std::shared_ptr<ipfs_pubsub::GossipPubSub> pubSub_;
std::shared_ptr<ipfs_lite::ipfs::graphsync::Network> graphsync_;
std::shared_ptr<libp2p::protocol::Scheduler> scheduler_;
std::shared_ptr<ipfs_lite::ipfs::graphsync::RequestIdGenerator> generator_;
std::shared_ptr<crdt::AtomicTransaction> crdt_transaction_;
std::string writeBasePath_;
std::string base58key_;
std::unordered_set<std::string> topics_;
base::Logger m_logger = base::createLogger( "MigrationStep" );
};
} // namespace sgns
Updated on 2026-03-04 at 13:10:44 -0800