Bitcoin ABC  0.29.2
P2P Digital Currency
Public Types | Signals | Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
ClientModel Class Reference

Model for Bitcoin network client. More...

#include <clientmodel.h>

Inheritance diagram for ClientModel:
[legend]
Collaboration diagram for ClientModel:
[legend]

Public Types

enum  NumConnections { CONNECTIONS_NONE = 0 , CONNECTIONS_IN = (1U << 0) , CONNECTIONS_OUT = (1U << 1) , CONNECTIONS_ALL = (CONNECTIONS_IN | CONNECTIONS_OUT) }
 

Signals

void numConnectionsChanged (int count)
 
void numBlocksChanged (int count, const QDateTime &blockDate, double nVerificationProgress, SyncType header, SynchronizationState sync_state)
 
void mempoolSizeChanged (long count, size_t mempoolSizeInBytes)
 
void networkActiveChanged (bool networkActive)
 
void alertsChanged (const QString &warnings)
 
void bytesChanged (quint64 totalBytesIn, quint64 totalBytesOut)
 
void message (const QString &title, const QString &message, unsigned int style)
 Fired when a message should be reported to the user. More...
 
void showProgress (const QString &title, int nProgress)
 

Public Member Functions

 ClientModel (interfaces::Node &node, OptionsModel *optionsModel, QObject *parent=nullptr)
 
 ~ClientModel ()
 
interfaces::Nodenode () const
 
OptionsModelgetOptionsModel ()
 
PeerTableModelgetPeerTableModel ()
 
BanTableModelgetBanTableModel ()
 
int getNumConnections (NumConnections flags=CONNECTIONS_ALL) const
 Return number of connections, default is in- and outbound (total) More...
 
int getNumBlocks () const
 
BlockHash getBestBlockHash () EXCLUSIVE_LOCKS_REQUIRED(!m_cached_tip_mutex)
 
int getHeaderTipHeight () const
 
int64_t getHeaderTipTime () const
 
BlockSource getBlockSource () const
 Returns the block source of the current importing/syncing state. More...
 
QString getStatusBarWarnings () const
 Return warnings to be displayed in status bar. More...
 
QString formatFullVersion () const
 
QString formatSubVersion () const
 
bool isReleaseVersion () const
 
QString formatClientStartupTime () const
 
QString dataDir () const
 
QString blocksDir () const
 
bool getProxyInfo (std::string &ip_port) const
 
BlockHash m_cached_tip_blocks GUARDED_BY (m_cached_tip_mutex)
 

Public Attributes

std::atomic< int > cachedBestHeaderHeight
 
std::atomic< int64_t > cachedBestHeaderTime
 
std::atomic< int > m_cached_num_blocks {-1}
 
Mutex m_cached_tip_mutex
 

Private Member Functions

void TipChanged (SynchronizationState sync_state, interfaces::BlockTip tip, double verification_progress, SyncType synctype)
 
void subscribeToCoreSignals ()
 
void unsubscribeFromCoreSignals ()
 

Private Attributes

interfaces::Nodem_node
 
std::unique_ptr< interfaces::Handlerm_handler_show_progress
 
std::unique_ptr< interfaces::Handlerm_handler_notify_num_connections_changed
 
std::unique_ptr< interfaces::Handlerm_handler_notify_network_active_changed
 
std::unique_ptr< interfaces::Handlerm_handler_notify_alert_changed
 
std::unique_ptr< interfaces::Handlerm_handler_banned_list_changed
 
std::unique_ptr< interfaces::Handlerm_handler_notify_block_tip
 
std::unique_ptr< interfaces::Handlerm_handler_notify_header_tip
 
OptionsModeloptionsModel
 
PeerTableModelpeerTableModel
 
BanTableModelbanTableModel
 
QThread *const m_thread
 A thread to interact with m_node asynchronously. More...
 

Detailed Description

Model for Bitcoin network client.

Definition at line 43 of file clientmodel.h.

Member Enumeration Documentation

◆ NumConnections

Enumerator
CONNECTIONS_NONE 
CONNECTIONS_IN 
CONNECTIONS_OUT 
CONNECTIONS_ALL 

Definition at line 47 of file clientmodel.h.

Constructor & Destructor Documentation

◆ ClientModel()

ClientModel::ClientModel ( interfaces::Node node,
OptionsModel optionsModel,
QObject *  parent = nullptr 
)
explicit

Definition at line 31 of file clientmodel.cpp.

Here is the call graph for this function:

◆ ~ClientModel()

ClientModel::~ClientModel ( )

Definition at line 61 of file clientmodel.cpp.

Here is the call graph for this function:

Member Function Documentation

◆ alertsChanged

void ClientModel::alertsChanged ( const QString &  warnings)
signal
Here is the caller graph for this function:

◆ blocksDir()

QString ClientModel::blocksDir ( ) const

Definition at line 183 of file clientmodel.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bytesChanged

void ClientModel::bytesChanged ( quint64  totalBytesIn,
quint64  totalBytesOut 
)
signal
Here is the caller graph for this function:

◆ dataDir()

QString ClientModel::dataDir ( ) const

Definition at line 179 of file clientmodel.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ formatClientStartupTime()

QString ClientModel::formatClientStartupTime ( ) const

Definition at line 175 of file clientmodel.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ formatFullVersion()

QString ClientModel::formatFullVersion ( ) const

Definition at line 163 of file clientmodel.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ formatSubVersion()

QString ClientModel::formatSubVersion ( ) const

Definition at line 167 of file clientmodel.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getBanTableModel()

BanTableModel * ClientModel::getBanTableModel ( )

Definition at line 159 of file clientmodel.cpp.

Here is the caller graph for this function:

◆ getBestBlockHash()

BlockHash ClientModel::getBestBlockHash ( )

Definition at line 115 of file clientmodel.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getBlockSource()

BlockSource ClientModel::getBlockSource ( ) const

Returns the block source of the current importing/syncing state.

Definition at line 137 of file clientmodel.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getHeaderTipHeight()

int ClientModel::getHeaderTipHeight ( ) const

Definition at line 82 of file clientmodel.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getHeaderTipTime()

int64_t ClientModel::getHeaderTipTime ( ) const

Definition at line 96 of file clientmodel.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getNumBlocks()

int ClientModel::getNumBlocks ( ) const

Definition at line 108 of file clientmodel.cpp.

Here is the call graph for this function:

◆ getNumConnections()

int ClientModel::getNumConnections ( NumConnections  flags = CONNECTIONS_ALL) const

Return number of connections, default is in- and outbound (total)

Definition at line 68 of file clientmodel.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getOptionsModel()

OptionsModel * ClientModel::getOptionsModel ( )

Definition at line 151 of file clientmodel.cpp.

Here is the caller graph for this function:

◆ getPeerTableModel()

PeerTableModel * ClientModel::getPeerTableModel ( )

Definition at line 155 of file clientmodel.cpp.

Here is the caller graph for this function:

◆ getProxyInfo()

bool ClientModel::getProxyInfo ( std::string &  ip_port) const

Definition at line 268 of file clientmodel.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getStatusBarWarnings()

QString ClientModel::getStatusBarWarnings ( ) const

Return warnings to be displayed in status bar.

Definition at line 147 of file clientmodel.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GUARDED_BY()

BlockHash m_cached_tip_blocks ClientModel::GUARDED_BY ( m_cached_tip_mutex  )

◆ isReleaseVersion()

bool ClientModel::isReleaseVersion ( ) const

Definition at line 171 of file clientmodel.cpp.

◆ mempoolSizeChanged

void ClientModel::mempoolSizeChanged ( long  count,
size_t  mempoolSizeInBytes 
)
signal
Here is the caller graph for this function:

◆ message

void ClientModel::message ( const QString &  title,
const QString &  message,
unsigned int  style 
)
signal

Fired when a message should be reported to the user.

Here is the caller graph for this function:

◆ networkActiveChanged

void ClientModel::networkActiveChanged ( bool  networkActive)
signal
Here is the caller graph for this function:

◆ node()

interfaces::Node& ClientModel::node ( ) const
inline

Definition at line 58 of file clientmodel.h.

Here is the caller graph for this function:

◆ numBlocksChanged

void ClientModel::numBlocksChanged ( int  count,
const QDateTime &  blockDate,
double  nVerificationProgress,
SyncType  header,
SynchronizationState  sync_state 
)
signal
Here is the caller graph for this function:

◆ numConnectionsChanged

void ClientModel::numConnectionsChanged ( int  count)
signal
Here is the caller graph for this function:

◆ showProgress

void ClientModel::showProgress ( const QString &  title,
int  nProgress 
)
signal
Here is the caller graph for this function:

◆ subscribeToCoreSignals()

void ClientModel::subscribeToCoreSignals ( )
private

Definition at line 219 of file clientmodel.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ TipChanged()

void ClientModel::TipChanged ( SynchronizationState  sync_state,
interfaces::BlockTip  tip,
double  verification_progress,
SyncType  synctype 
)
private

Definition at line 187 of file clientmodel.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ unsubscribeFromCoreSignals()

void ClientModel::unsubscribeFromCoreSignals ( )
private

Definition at line 258 of file clientmodel.cpp.

Here is the caller graph for this function:

Member Data Documentation

◆ banTableModel

BanTableModel* ClientModel::banTableModel
private

Definition at line 105 of file clientmodel.h.

◆ cachedBestHeaderHeight

std::atomic<int> ClientModel::cachedBestHeaderHeight
mutable

Definition at line 85 of file clientmodel.h.

◆ cachedBestHeaderTime

std::atomic<int64_t> ClientModel::cachedBestHeaderTime
mutable

Definition at line 86 of file clientmodel.h.

◆ m_cached_num_blocks

std::atomic<int> ClientModel::m_cached_num_blocks {-1}
mutable

Definition at line 87 of file clientmodel.h.

◆ m_cached_tip_mutex

Mutex ClientModel::m_cached_tip_mutex

Definition at line 89 of file clientmodel.h.

◆ m_handler_banned_list_changed

std::unique_ptr<interfaces::Handler> ClientModel::m_handler_banned_list_changed
private

Definition at line 100 of file clientmodel.h.

◆ m_handler_notify_alert_changed

std::unique_ptr<interfaces::Handler> ClientModel::m_handler_notify_alert_changed
private

Definition at line 99 of file clientmodel.h.

◆ m_handler_notify_block_tip

std::unique_ptr<interfaces::Handler> ClientModel::m_handler_notify_block_tip
private

Definition at line 101 of file clientmodel.h.

◆ m_handler_notify_header_tip

std::unique_ptr<interfaces::Handler> ClientModel::m_handler_notify_header_tip
private

Definition at line 102 of file clientmodel.h.

◆ m_handler_notify_network_active_changed

std::unique_ptr<interfaces::Handler> ClientModel::m_handler_notify_network_active_changed
private

Definition at line 98 of file clientmodel.h.

◆ m_handler_notify_num_connections_changed

std::unique_ptr<interfaces::Handler> ClientModel::m_handler_notify_num_connections_changed
private

Definition at line 96 of file clientmodel.h.

◆ m_handler_show_progress

std::unique_ptr<interfaces::Handler> ClientModel::m_handler_show_progress
private

Definition at line 94 of file clientmodel.h.

◆ m_node

interfaces::Node& ClientModel::m_node
private

Definition at line 93 of file clientmodel.h.

◆ m_thread

QThread* const ClientModel::m_thread
private

A thread to interact with m_node asynchronously.

Definition at line 108 of file clientmodel.h.

◆ optionsModel

OptionsModel* ClientModel::optionsModel
private

Definition at line 103 of file clientmodel.h.

◆ peerTableModel

PeerTableModel* ClientModel::peerTableModel
private

Definition at line 104 of file clientmodel.h.


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