美文网首页
比特币源码研读之二

比特币源码研读之二

作者: 剑有偏锋 | 来源:发表于2017-10-14 21:09 被阅读104次

区块链研习社比特币源码研读班
今天研读第二,第三流程,SetupEnvironment和noui_connect函数

一总体结构图

image.png

二 研读SetupEnvironment,设置运行环境

void SetupEnvironment()
{
#ifdef HAVE_MALLOPT_ARENA_MAX
    //《1 32位系统,设置内存最大分配区域为1,表示系统按CPU进行自动设置
    if (sizeof(void*) == 4) {
        mallopt(M_ARENA_MAX, 1);
    }
#endif

//《2 系统区域设置,影响当前语言编码,日期格式,数字格式等
#if !defined(WIN32) && !defined(MAC_OSX) && !defined(__FreeBSD__) && !defined(__OpenBSD__)
    try {
        std::locale(""); // Raises a runtime error if current locale is invalid
    } catch (const std::runtime_error&) {
        setenv("LC_ALL", "C", 1);
    }
#endif

// 《3 文件系统的本地化设置
    std::locale loc = fs::path::imbue(std::locale::classic());
    fs::path::imbue(loc);
}

三 研读noui_connect,连接信号与槽

void noui_connect()
{
    uiInterface.ThreadSafeMessageBox.connect(noui_ThreadSafeMessageBox);//连接弹出消息框
    uiInterface.ThreadSafeQuestion.connect(noui_ThreadSafeQuestion);//连接问题询问框
    uiInterface.InitMessage.connect(noui_InitMessage);//连接初始化消息
}


《1 uiInterface为比特币的界面对象,属于 CClientUIInterface 类

《 2 信号与槽
//ThreadSafeMessageBox等为boost的信号, 定义见 ui_interface.h
// noui_ThreadSafeMessageBox为槽函数,定义见noui.cpp
//信号和槽机制用于取代函数回调,初见于qt C++框架,后面boost参考思想实现了

 /** Show message box. */
    boost::signals2::signal<bool (const std::string& message, const std::string& caption, unsigned int style), boost::signals2::last_value<bool> > ThreadSafeMessageBox;

static bool noui_ThreadSafeMessageBox(const std::string& message, const std::string& caption, unsigned int style)
{
...
}

相关文章

  • 比特币源码研读

    forest21000版 比特币源码研读之一比特币源码研读之二比特币源码研读之三比特币源码研读之四比特币源码研读之...

  • 比特币源码研读之十一

    比特币源码研读系列已经发表了十篇了,通过这十篇源码研读系列让我对比特币源码及比特币运行原理有了进一步的理解,也让我...

  • 比特币源码研读之一

    比特币源码研读之一——区块链研习社 《比特币源码研读班》 一看文件夹结构 和 github编译依赖,分析的依赖库 ...

  • 比特币源码研读之一

    作者:区块链研习比特币源码研读班 菜菜子 一、源码下载 本文比特币源码下载地址为:https://github.c...

  • 比特币源码研读之二十

    今天是2017年12月31日,即2017年的最后一天了,本应好好总结,对今年做个总结的,但想着自己身为源码研读班班...

  • 比特币源码研读之二

    区块链研习社比特币源码研读班今天研读第二,第三流程,SetupEnvironment和noui_connect函数...

  • 比特币源码研读之二

    上一篇文章我们大致分析了一下比特币源码src文件夹的目录结构以及数据目录结构,接下来我们将进入源码的分析。本篇涉及...

  • 比特币源码研读之二

    前一篇文章中已经完成了main函数运行过程的梳理,并且也绘制了其运行流程图,为了更清晰地记录每个过程的详细执行内容...

  • 01:比特币源码编译|比特币源码研读

    2018年8月报名了区块链研习社的「比特币源码研读班」(5期)。首先要准备比特币源码的编译,因为对这块几乎是小白水...

  • 编译bitcoin源码

    ——区块链研习社 《比特币源码研读班》 本文基于ubuntu 16.04 64编译ok 一 下载源码(如没安装gi...

网友评论

      本文标题:比特币源码研读之二

      本文链接:https://www.haomeiwen.com/subject/fyefuxtx.html