Gossip 1.1
Public Member Functions | List of all members
gossip::server::GossipSlot Class Reference

Memory map with different slots and versions. More...

#include <GossipSlot.h>

Public Member Functions

 GossipSlot (std::string name)
 
 GossipSlot (const GossipSlot &other)
 
GossipSlotoperator= (const GossipSlot &other)
 
SlotVersion insertOrUpdate (const std::string &key, const std::string &value)
 
SlotVersion insertOrUpdate (const std::string &key, const std::string &value, SlotVersion version)
 
SlotVersion remove (const std::string &key)
 
SlotVersion remove (const std::string &key, SlotVersion version)
 
SlotVersion version () const
 
std::string name () const
 
SlotVersion compareAndMergeSlot (SlotValues values, SlotVersion version)
 
std::pair< std::string, SlotVersion > find (const std::string &key)
 
SlotValues messages () const
 
size_t approximateMemoryUse () const
 

Detailed Description

Memory map with different slots and versions.

Class GossipSlot stores all K-V pairs generated by certain GossipNode. A GossipSlot only stores data from that GossipNode.

Constructor & Destructor Documentation

◆ GossipSlot()

gossip::server::GossipSlot::GossipSlot ( std::string  name)
inlineexplicit

Construction of GossipSlot, the name of a slot represents a node's name.

Parameters
nameSlot name of GossipSlot.

Member Function Documentation

◆ approximateMemoryUse()

size_t gossip::server::GossipSlot::approximateMemoryUse ( ) const
inline

Get approximate memory use of this slot.

Returns
Approximate memory use

◆ compareAndMergeSlot()

SlotVersion gossip::server::GossipSlot::compareAndMergeSlot ( SlotValues  values,
SlotVersion  version 
)

Merge this slot with given SlotValues, if assigned version is less than current version, function will do nothing.

Parameters
valuesNew values of this slot
versionAssigned version
Returns
Assigned slot version if succeed or -1 if failed

◆ find()

std::pair< std::string, SlotVersion > gossip::server::GossipSlot::find ( const std::string &  key)

Get value and version of a K-V pair in this slot.

Parameters
keyThe key of K-V pair
Returns
[value , version] if succeed or ["", 0] if not found

◆ insertOrUpdate() [1/2]

SlotVersion gossip::server::GossipSlot::insertOrUpdate ( const std::string &  key,
const std::string &  value 
)

Insert or update a K-V pair and update version of slot automatically.

Parameters
keyThe key of K-V pair
valueThe value of K-V pair
Returns
Updated slot version

◆ insertOrUpdate() [2/2]

SlotVersion gossip::server::GossipSlot::insertOrUpdate ( const std::string &  key,
const std::string &  value,
SlotVersion  version 
)

Insert or update a K-V pair and set slot version to assigned value. If assigned version value is less than current version, the function will do nothing.

Parameters
keyThe key of K-V pair
valueThe value of K-V pair
versionAssigned slot version
Returns
Assigned slot version if succeed or -1 if failed

◆ messages()

SlotValues gossip::server::GossipSlot::messages ( ) const
inline

Get the Copy of K-V pairs in this slot.

Returns
Copy of K-V pairs, struct format is std::unordered_map

◆ name()

std::string gossip::server::GossipSlot::name ( ) const
inline

Get the name of this slot.

Returns
Slot name

◆ remove() [1/2]

SlotVersion gossip::server::GossipSlot::remove ( const std::string &  key)

Delete a K-V pair in current slot.

Parameters
keyThe key of K-V pair
Returns
Updated slot version if succeed or -1 if failed

◆ remove() [2/2]

SlotVersion gossip::server::GossipSlot::remove ( const std::string &  key,
SlotVersion  version 
)

Delete a K-V pair in current slot and set slot version to assigned value.

Parameters
keyThe key of K-V pair
versionAssigned slot version
Returns
Assigned slot version if succeed or -1 if failed

◆ version()

SlotVersion gossip::server::GossipSlot::version ( ) const
inline

Get current version of this slot.

Returns
Current version

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