Loading...
Searching...
No Matches
resdb::ConsensusManager Class Referenceabstract

#include <consensus_manager.h>

Inheritance diagram for resdb::ConsensusManager:
resdb::ServiceInterface resdb::ConsensusManagerPBFT resdb::ConsensusManagerGeoPBFT

Classes

struct  QueueItem
 

Public Member Functions

 ConsensusManager (const ResDBConfig &config)
 
virtual ~ConsensusManager ()
 
virtual int Process (std::unique_ptr< Context > context, std::unique_ptr< DataInfo > request_info)
 
bool IsReady () const
 
void Stop ()
 
void Start ()
 
- Public Member Functions inherited from resdb::ServiceInterface
 ServiceInterface ()
 
virtual ~ServiceInterface ()=default
 
virtual bool IsRunning () const
 
virtual void SetRunning (bool is_running)
 

Protected Member Functions

virtual void BroadCast (const Request &request)
 
virtual void SendMessage (const google::protobuf::Message &message, int64_t node_id)
 
virtual int Dispatch (std::unique_ptr< Context > context, std::unique_ptr< Request > request)
 
virtual int ConsensusCommit (std::unique_ptr< Context > context, std::unique_ptr< Request > request)
 
int ProcessClientCert (std::unique_ptr< Context > context, std::unique_ptr< Request > request)
 
int ProcessHeartBeat (std::unique_ptr< Context > context, std::unique_ptr< Request > request)
 
virtual std::unique_ptr< ReplicaCommunicator > GetReplicaClient (const std::vector< ReplicaInfo > &replicas, bool is_use_long_conn=false)
 
virtual std::vector< ReplicaInfo > GetReplicas ()=0
 
std::vector< ReplicaInfo > GetAllReplicas ()
 
virtual std::vector< ReplicaInfo > GetClientReplicas ()
 
virtual void AddNewReplica (const ReplicaInfo &info)
 
virtual uint32_t GetPrimary ()
 
virtual uint32_t GetVersion ()
 
virtual void SetPrimary (uint32_t primary, uint64_t version)
 
void AddNewClient (const ReplicaInfo &info)
 
ReplicaCommunicator * GetBroadCastClient ()
 
void UpdateBroadCastClient ()
 
SignatureVerifier * GetSignatureVerifier ()
 

Protected Attributes

ResDBConfig config_
 
std::unique_ptr< SignatureVerifier > verifier_
 

Detailed Description

Definition at line 37 of file consensus_manager.h.

Constructor & Destructor Documentation

◆ ConsensusManager()

resdb::ConsensusManager::ConsensusManager ( const ResDBConfig &  config)

Definition at line 43 of file consensus_manager.cpp.

◆ ~ConsensusManager()

resdb::ConsensusManager::~ConsensusManager ( )
virtual

Definition at line 52 of file consensus_manager.cpp.

Member Function Documentation

◆ AddNewClient()

void resdb::ConsensusManager::AddNewClient ( const ReplicaInfo &  info)
protected

Definition at line 333 of file consensus_manager.cpp.

◆ AddNewReplica()

void resdb::ConsensusManager::AddNewReplica ( const ReplicaInfo &  info)
protectedvirtual

Definition at line 331 of file consensus_manager.cpp.

◆ BroadCast()

void resdb::ConsensusManager::BroadCast ( const Request &  request)
protectedvirtual

Definition at line 293 of file consensus_manager.cpp.

◆ ConsensusCommit()

int resdb::ConsensusManager::ConsensusCommit ( std::unique_ptr< Context >  context,
std::unique_ptr< Request >  request 
)
protectedvirtual

Reimplemented in resdb::ConsensusManagerGeoPBFT, and resdb::ConsensusManagerPBFT.

Definition at line 273 of file consensus_manager.cpp.

◆ Dispatch()

int resdb::ConsensusManager::Dispatch ( std::unique_ptr< Context >  context,
std::unique_ptr< Request >  request 
)
protectedvirtual

Definition at line 195 of file consensus_manager.cpp.

◆ GetAllReplicas()

std::vector< ReplicaInfo > resdb::ConsensusManager::GetAllReplicas ( )
protected

Definition at line 282 of file consensus_manager.cpp.

◆ GetBroadCastClient()

ReplicaCommunicator * resdb::ConsensusManager::GetBroadCastClient ( )
protected

Definition at line 61 of file consensus_manager.cpp.

◆ GetClientReplicas()

std::vector< ReplicaInfo > resdb::ConsensusManager::GetClientReplicas ( )
protectedvirtual

Definition at line 278 of file consensus_manager.cpp.

◆ GetPrimary()

uint32_t resdb::ConsensusManager::GetPrimary ( )
protectedvirtual

Reimplemented in resdb::ConsensusManagerPBFT.

Definition at line 340 of file consensus_manager.cpp.

◆ GetReplicaClient()

std::unique_ptr< ReplicaCommunicator > resdb::ConsensusManager::GetReplicaClient ( const std::vector< ReplicaInfo > &  replicas,
bool  is_use_long_conn = false 
)
protectedvirtual

Definition at line 321 of file consensus_manager.cpp.

◆ GetReplicas()

virtual std::vector< ReplicaInfo > resdb::ConsensusManager::GetReplicas ( )
protectedpure virtual

Implemented in resdb::ConsensusManagerPBFT.

◆ GetSignatureVerifier()

SignatureVerifier * resdb::ConsensusManager::GetSignatureVerifier ( )
protected

Definition at line 65 of file consensus_manager.cpp.

◆ GetVersion()

uint32_t resdb::ConsensusManager::GetVersion ( )
protectedvirtual

Reimplemented in resdb::ConsensusManagerPBFT.

Definition at line 342 of file consensus_manager.cpp.

◆ IsReady()

bool resdb::ConsensusManager::IsReady ( ) const
virtual

Reimplemented from resdb::ServiceInterface.

Definition at line 69 of file consensus_manager.cpp.

◆ Process()

int resdb::ConsensusManager::Process ( std::unique_ptr< Context >  context,
std::unique_ptr< DataInfo >  request_info 
)
virtual

Reimplemented from resdb::ServiceInterface.

Definition at line 151 of file consensus_manager.cpp.

◆ ProcessClientCert()

int resdb::ConsensusManager::ProcessClientCert ( std::unique_ptr< Context >  context,
std::unique_ptr< Request >  request 
)
protected

◆ ProcessHeartBeat()

int resdb::ConsensusManager::ProcessHeartBeat ( std::unique_ptr< Context >  context,
std::unique_ptr< Request >  request 
)
protected

Definition at line 203 of file consensus_manager.cpp.

◆ SendMessage()

void resdb::ConsensusManager::SendMessage ( const google::protobuf::Message &  message,
int64_t  node_id 
)
protectedvirtual

Definition at line 300 of file consensus_manager.cpp.

◆ SetPrimary()

void resdb::ConsensusManager::SetPrimary ( uint32_t  primary,
uint64_t  version 
)
protectedvirtual

Reimplemented in resdb::ConsensusManagerPBFT.

Definition at line 338 of file consensus_manager.cpp.

◆ Start()

void resdb::ConsensusManager::Start ( )
virtual

Reimplemented from resdb::ServiceInterface.

Reimplemented in resdb::ConsensusManagerPBFT.

Definition at line 78 of file consensus_manager.cpp.

◆ Stop()

void resdb::ConsensusManager::Stop ( )
virtual

Reimplemented from resdb::ServiceInterface.

Definition at line 71 of file consensus_manager.cpp.

◆ UpdateBroadCastClient()

void resdb::ConsensusManager::UpdateBroadCastClient ( )
protected

Definition at line 57 of file consensus_manager.cpp.

Member Data Documentation

◆ config_

ResDBConfig resdb::ConsensusManager::config_
protected

Definition at line 95 of file consensus_manager.h.

◆ verifier_

std::unique_ptr<SignatureVerifier> resdb::ConsensusManager::verifier_
protected

Definition at line 96 of file consensus_manager.h.