Split out screen sections into separate functions
This commit is contained in:
parent
4482bd8fd7
commit
d30273f919
135
src/metrics.cpp
135
src/metrics.cpp
|
@ -61,58 +61,8 @@ void ConnectMetricsScreen()
|
||||||
uiInterface.InitMessage.connect(metrics_InitMessage);
|
uiInterface.InitMessage.connect(metrics_InitMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
int printMessageBox()
|
void printMiningStatus(bool mining)
|
||||||
{
|
{
|
||||||
boost::strict_lock_ptr<std::list<std::string>> u = messageBox.synchronize();
|
|
||||||
|
|
||||||
if (u->size() == 0) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::cout << std::endl;
|
|
||||||
std::cout << "Messages:" << std::endl;
|
|
||||||
for (auto it = u->cbegin(); it != u->cend(); ++it) {
|
|
||||||
std::cout << *it << std::endl;
|
|
||||||
}
|
|
||||||
return 2 + u->size();
|
|
||||||
}
|
|
||||||
|
|
||||||
int printInitMessage()
|
|
||||||
{
|
|
||||||
if (loaded) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string msg = *initMessage;
|
|
||||||
std::cout << std::endl;
|
|
||||||
std::cout << "Init message: " << msg << std::endl;
|
|
||||||
|
|
||||||
if (msg == "Done loading") {
|
|
||||||
loaded = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ThreadShowMetricsScreen()
|
|
||||||
{
|
|
||||||
// Make this thread recognisable as the metrics screen thread
|
|
||||||
RenameThread("zcash-metrics-screen");
|
|
||||||
|
|
||||||
// Clear screen
|
|
||||||
std::cout << "\e[2J";
|
|
||||||
|
|
||||||
// Print art
|
|
||||||
std::cout << METRICS_ART << std::endl;
|
|
||||||
std::cout << std::endl;
|
|
||||||
|
|
||||||
// Thank you text
|
|
||||||
std::cout << "Thank you for running a Zcash node!" << std::endl;
|
|
||||||
std::cout << "You're helping to strengthen the network and contributing to a social good :)" << std::endl;
|
|
||||||
std::cout << std::endl;
|
|
||||||
|
|
||||||
// Miner status
|
|
||||||
bool mining = GetBoolArg("-gen", false);
|
|
||||||
if (mining) {
|
if (mining) {
|
||||||
int nThreads = GetArg("-genproclimit", 1);
|
int nThreads = GetArg("-genproclimit", 1);
|
||||||
if (nThreads < 0) {
|
if (nThreads < 0) {
|
||||||
|
@ -128,16 +78,12 @@ void ThreadShowMetricsScreen()
|
||||||
std::cout << "To enable mining, add 'gen=1' to your zcash.conf and restart." << std::endl;
|
std::cout << "To enable mining, add 'gen=1' to your zcash.conf and restart." << std::endl;
|
||||||
}
|
}
|
||||||
std::cout << std::endl;
|
std::cout << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
// Count uptime
|
int printMetrics(int64_t nStart, bool mining)
|
||||||
int64_t nStart = GetTime();
|
{
|
||||||
|
|
||||||
while (true) {
|
|
||||||
// Number of lines that are always displayed
|
// Number of lines that are always displayed
|
||||||
int lines = 4;
|
int lines = 3;
|
||||||
|
|
||||||
// Erase below current position
|
|
||||||
std::cout << "\e[J";
|
|
||||||
|
|
||||||
// Calculate uptime
|
// Calculate uptime
|
||||||
int64_t uptime = GetTime() - nStart;
|
int64_t uptime = GetTime() - nStart;
|
||||||
|
@ -171,13 +117,80 @@ void ThreadShowMetricsScreen()
|
||||||
lines++;
|
lines++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
std::cout << std::endl;
|
||||||
|
|
||||||
// Messages
|
return lines;
|
||||||
|
}
|
||||||
|
|
||||||
|
int printMessageBox()
|
||||||
|
{
|
||||||
|
boost::strict_lock_ptr<std::list<std::string>> u = messageBox.synchronize();
|
||||||
|
|
||||||
|
if (u->size() == 0) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::cout << "Messages:" << std::endl;
|
||||||
|
for (auto it = u->cbegin(); it != u->cend(); ++it) {
|
||||||
|
std::cout << *it << std::endl;
|
||||||
|
}
|
||||||
|
std::cout << std::endl;
|
||||||
|
return 2 + u->size();
|
||||||
|
}
|
||||||
|
|
||||||
|
int printInitMessage()
|
||||||
|
{
|
||||||
|
if (loaded) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string msg = *initMessage;
|
||||||
|
std::cout << "Init message: " << msg << std::endl;
|
||||||
|
std::cout << std::endl;
|
||||||
|
|
||||||
|
if (msg == "Done loading") {
|
||||||
|
loaded = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ThreadShowMetricsScreen()
|
||||||
|
{
|
||||||
|
// Make this thread recognisable as the metrics screen thread
|
||||||
|
RenameThread("zcash-metrics-screen");
|
||||||
|
|
||||||
|
// Clear screen
|
||||||
|
std::cout << "\e[2J";
|
||||||
|
|
||||||
|
// Print art
|
||||||
|
std::cout << METRICS_ART << std::endl;
|
||||||
|
std::cout << std::endl;
|
||||||
|
|
||||||
|
// Thank you text
|
||||||
|
std::cout << "Thank you for running a Zcash node!" << std::endl;
|
||||||
|
std::cout << "You're helping to strengthen the network and contributing to a social good :)" << std::endl;
|
||||||
|
std::cout << std::endl;
|
||||||
|
|
||||||
|
// Miner status
|
||||||
|
bool mining = GetBoolArg("-gen", false);
|
||||||
|
printMiningStatus(mining);
|
||||||
|
|
||||||
|
// Count uptime
|
||||||
|
int64_t nStart = GetTime();
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
// Number of lines that are always displayed
|
||||||
|
int lines = 1;
|
||||||
|
|
||||||
|
// Erase below current position
|
||||||
|
std::cout << "\e[J";
|
||||||
|
|
||||||
|
lines += printMetrics(nStart, mining);
|
||||||
lines += printMessageBox();
|
lines += printMessageBox();
|
||||||
lines += printInitMessage();
|
lines += printInitMessage();
|
||||||
|
|
||||||
// Explain how to exit
|
// Explain how to exit
|
||||||
std::cout << std::endl;
|
|
||||||
std::cout << "[Press Ctrl+C to exit] [Set 'showmetrics=0' to hide]" << std::endl;;
|
std::cout << "[Press Ctrl+C to exit] [Set 'showmetrics=0' to hide]" << std::endl;;
|
||||||
|
|
||||||
boost::this_thread::interruption_point();
|
boost::this_thread::interruption_point();
|
||||||
|
|
Loading…
Reference in New Issue