Loading...
Searching...
No Matches
resdb::Commitment Class Reference

#include <commitment.h>

Public Member Functions

 Commitment (const ResDBConfig &config, MessageManager *message_manager, ReplicaCommunicator *replica_communicator, SignatureVerifier *verifier)
 
virtual ~Commitment ()
 
virtual int ProcessNewRequest (std::unique_ptr< Context > context, std::unique_ptr< Request > user_request)
 
virtual int ProcessProposeMsg (std::unique_ptr< Context > context, std::unique_ptr< Request > request)
 
virtual int ProcessPrepareMsg (std::unique_ptr< Context > context, std::unique_ptr< Request > request)
 
virtual int ProcessCommitMsg (std::unique_ptr< Context > context, std::unique_ptr< Request > request)
 
void SetPreVerifyFunc (std::function< bool(const Request &request)> func)
 
void SetNeedCommitQC (bool need_qc)
 
DuplicateManager * GetDuplicateManager ()
 

Public Attributes

std::queue< std::pair< std::unique_ptr< Context >, std::unique_ptr< Request > > > request_complained_
 
std::mutex rc_mutex_
 

Protected Member Functions

virtual int PostProcessExecutedMsg ()
 

Protected Attributes

ResDBConfig config_
 
MessageManager * message_manager_
 
std::thread executed_thread_
 
std::atomic< bool > stop_
 
ReplicaCommunicator * replica_communicator_
 
SignatureVerifier * verifier_
 
Stats * global_stats_
 
std::function< bool(const Request &request)> pre_verify_func_
 
bool need_qc_ = false
 
std::mutex mutex_
 
std::unique_ptr< DuplicateManager > duplicate_manager_
 

Detailed Description

Definition at line 32 of file commitment.h.

Constructor & Destructor Documentation

◆ Commitment()

resdb::Commitment::Commitment ( const ResDBConfig &  config,
MessageManager *  message_manager,
ReplicaCommunicator *  replica_communicator,
SignatureVerifier *  verifier 
)

Definition at line 30 of file commitment.cpp.

◆ ~Commitment()

resdb::Commitment::~Commitment ( )
virtual

Definition at line 45 of file commitment.cpp.

Member Function Documentation

◆ GetDuplicateManager()

DuplicateManager * resdb::Commitment::GetDuplicateManager ( )

Definition at line 305 of file commitment.cpp.

◆ PostProcessExecutedMsg()

int resdb::Commitment::PostProcessExecutedMsg ( )
protectedvirtual

Definition at line 284 of file commitment.cpp.

◆ ProcessCommitMsg()

int resdb::Commitment::ProcessCommitMsg ( std::unique_ptr< Context >  context,
std::unique_ptr< Request >  request 
)
virtual

Definition at line 262 of file commitment.cpp.

◆ ProcessNewRequest()

int resdb::Commitment::ProcessNewRequest ( std::unique_ptr< Context >  context,
std::unique_ptr< Request >  user_request 
)
virtual

Definition at line 61 of file commitment.cpp.

◆ ProcessPrepareMsg()

int resdb::Commitment::ProcessPrepareMsg ( std::unique_ptr< Context >  context,
std::unique_ptr< Request >  request 
)
virtual

Definition at line 221 of file commitment.cpp.

◆ ProcessProposeMsg()

int resdb::Commitment::ProcessProposeMsg ( std::unique_ptr< Context >  context,
std::unique_ptr< Request >  request 
)
virtual

Definition at line 150 of file commitment.cpp.

◆ SetNeedCommitQC()

void resdb::Commitment::SetNeedCommitQC ( bool  need_qc)

Definition at line 57 of file commitment.cpp.

◆ SetPreVerifyFunc()

void resdb::Commitment::SetPreVerifyFunc ( std::function< bool(const Request &request)>  func)

Definition at line 52 of file commitment.cpp.

Member Data Documentation

◆ config_

ResDBConfig resdb::Commitment::config_
protected

Definition at line 63 of file commitment.h.

◆ duplicate_manager_

std::unique_ptr<DuplicateManager> resdb::Commitment::duplicate_manager_
protected

Definition at line 76 of file commitment.h.

◆ executed_thread_

std::thread resdb::Commitment::executed_thread_
protected

Definition at line 65 of file commitment.h.

◆ global_stats_

Stats* resdb::Commitment::global_stats_
protected

Definition at line 70 of file commitment.h.

◆ message_manager_

MessageManager* resdb::Commitment::message_manager_
protected

Definition at line 64 of file commitment.h.

◆ mutex_

std::mutex resdb::Commitment::mutex_
protected

Definition at line 75 of file commitment.h.

◆ need_qc_

bool resdb::Commitment::need_qc_ = false
protected

Definition at line 73 of file commitment.h.

◆ pre_verify_func_

std::function<bool(const Request& request)> resdb::Commitment::pre_verify_func_
protected

Definition at line 72 of file commitment.h.

◆ rc_mutex_

std::mutex resdb::Commitment::rc_mutex_

Definition at line 55 of file commitment.h.

◆ replica_communicator_

ReplicaCommunicator* resdb::Commitment::replica_communicator_
protected

Definition at line 67 of file commitment.h.

◆ request_complained_

std::queue<std::pair<std::unique_ptr<Context>, std::unique_ptr<Request> > > resdb::Commitment::request_complained_

Definition at line 53 of file commitment.h.

◆ stop_

std::atomic<bool> resdb::Commitment::stop_
protected

Definition at line 66 of file commitment.h.

◆ verifier_

SignatureVerifier* resdb::Commitment::verifier_
protected

Definition at line 69 of file commitment.h.