Derecho  0.9
Distributed systems toolkit for RDMA
Public Member Functions | List of all members
derecho::ReplicatedObject Class Referenceabstract

Common interface for all types of Replicated<T>, specifying some methods for state transfer and persistence. More...

#include <replicated_interface.hpp>

Inheritance diagram for derecho::ReplicatedObject:
Inheritance graph
[legend]

Public Member Functions

virtual ~ReplicatedObject ()=default
 
virtual bool is_valid () const =0
 
virtual std::size_t object_size () const =0
 
virtual void send_object (tcp::socket &receiver_socket) const =0
 
virtual void send_object_raw (tcp::socket &receiver_socket) const =0
 
virtual std::size_t receive_object (char *buffer)=0
 
virtual bool is_persistent () const =0
 
virtual void make_version (const persistent::version_t &ver, const HLC &hlc) noexcept(false)=0
 
virtual const persistent::version_t get_minimum_latest_persisted_version () noexcept(false)=0
 
virtual void persist (const persistent::version_t version) noexcept(false)=0
 
virtual void truncate (const persistent::version_t &latest_version)=0
 
virtual void post_next_version (const persistent::version_t &version, const uint64_t &msg_ts)=0
 

Detailed Description

Common interface for all types of Replicated<T>, specifying some methods for state transfer and persistence.

This allows non-templated Derecho components like ViewManager to take these actions without knowing the full type of a subgroup.

Definition at line 13 of file replicated_interface.hpp.

Constructor & Destructor Documentation

◆ ~ReplicatedObject()

virtual derecho::ReplicatedObject::~ReplicatedObject ( )
virtualdefault

Member Function Documentation

◆ get_minimum_latest_persisted_version()

virtual const persistent::version_t derecho::ReplicatedObject::get_minimum_latest_persisted_version ( )
pure virtualnoexcept

Implemented in derecho::Replicated< T >.

◆ is_persistent()

virtual bool derecho::ReplicatedObject::is_persistent ( ) const
pure virtual

Implemented in derecho::Replicated< T >.

◆ is_valid()

virtual bool derecho::ReplicatedObject::is_valid ( ) const
pure virtual

Implemented in derecho::Replicated< T >.

◆ make_version()

virtual void derecho::ReplicatedObject::make_version ( const persistent::version_t ver,
const HLC hlc 
)
pure virtualnoexcept

Implemented in derecho::Replicated< T >.

◆ object_size()

virtual std::size_t derecho::ReplicatedObject::object_size ( ) const
pure virtual

Implemented in derecho::Replicated< T >.

◆ persist()

virtual void derecho::ReplicatedObject::persist ( const persistent::version_t  version)
pure virtualnoexcept

Implemented in derecho::Replicated< T >.

◆ post_next_version()

virtual void derecho::ReplicatedObject::post_next_version ( const persistent::version_t version,
const uint64_t &  msg_ts 
)
pure virtual

Implemented in derecho::Replicated< T >.

◆ receive_object()

virtual std::size_t derecho::ReplicatedObject::receive_object ( char *  buffer)
pure virtual

Implemented in derecho::Replicated< T >.

◆ send_object()

virtual void derecho::ReplicatedObject::send_object ( tcp::socket receiver_socket) const
pure virtual

Implemented in derecho::Replicated< T >.

◆ send_object_raw()

virtual void derecho::ReplicatedObject::send_object_raw ( tcp::socket receiver_socket) const
pure virtual

Implemented in derecho::Replicated< T >.

◆ truncate()

virtual void derecho::ReplicatedObject::truncate ( const persistent::version_t latest_version)
pure virtual

Implemented in derecho::Replicated< T >.


The documentation for this class was generated from the following file: