reputation/reputation_storage.hpp¶
RocksDB-backed reputation persistence (PTDS §4.2) More...
Namespaces¶
| Name |
|---|
| sgns |
| sgns::neoswarm |
| sgns::neoswarm::reputation |
Classes¶
| Name | |
|---|---|
| class | sgns::neoswarm::reputation::ReputationStorage Persists NodeReputation records to RocksDB. Falls back to an in-memory store when RocksDB is not compiled in. |
Detailed Description¶
RocksDB-backed reputation persistence (PTDS §4.2)
Date: 2026-05-06
Source code¶
#ifndef NEOSWARM_REPUTATION_REPUTATIONSTORAGE_HPP
#define NEOSWARM_REPUTATION_REPUTATIONSTORAGE_HPP
#include "node_reputation.hpp"
#include "common/error.hpp"
#include <memory>
#include <optional>
#include <string>
#include <vector>
namespace sgns::neoswarm::reputation
{
class ReputationStorage
{
public:
explicit ReputationStorage( const std::string& db_path );
~ReputationStorage();
outcome::result<void> Open();
void Close();
outcome::result<void> Put( const NodeReputation& rep );
outcome::result<void> PutBatch( const std::vector<NodeReputation>& records );
outcome::result<NodeReputation> Get( const std::string& identity_key ) const;
outcome::result<void> Remove( const std::string& identity_key );
outcome::result<std::vector<NodeReputation>> GetAll() const;
bool IsOpen() const
{
return open_;
}
private:
struct Impl;
std::unique_ptr<Impl> m_impl;
std::string db_path_;
bool open_ = false;
static std::string Serialize( const NodeReputation& rep );
static outcome::result<NodeReputation> Deserialize( const std::string& data );
};
} // namespace sgns::neoswarm::reputation
#endif // NEOSWARM_REPUTATION_REPUTATIONSTORAGE_HPP
Updated on 2026-07-25 at 22:56:57 +0000