kernel: Introduce empty and unused kernel::Context

[META] In the next commit, we will move the init::{Set,Unset}Globals
       logic into this struct.

Co-Authored-By: Ryan Ofsky <ryan@ofsky.org>
This commit is contained in:
Carl Dong 2022-05-25 14:55:44 -04:00
parent eeb4fc20c5
commit 7d03feef81
3 changed files with 25 additions and 0 deletions

View File

@ -172,6 +172,7 @@ BITCOIN_CORE_H = \
interfaces/wallet.h \
kernel/chainstatemanager_opts.h \
kernel/coinstats.h \
kernel/context.h \
key.h \
key_io.h \
logging.h \

20
src/kernel/context.h Normal file
View File

@ -0,0 +1,20 @@
// Copyright (c) 2022 The Bitcoin Core developers
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_KERNEL_CONTEXT_H
#define BITCOIN_KERNEL_CONTEXT_H
namespace kernel {
//! Context struct holding the kernel library's logically global state, and
//! passed to external libbitcoin_kernel functions which need access to this
//! state. The kernel libary API is a work in progress, so state organization
//! and member list will evolve over time.
//!
//! State stored directly in this struct should be simple. More complex state
//! should be stored to std::unique_ptr members pointing to opaque types.
struct Context {
};
} // namespace kernel
#endif // BITCOIN_KERNEL_CONTEXT_H

View File

@ -5,6 +5,8 @@
#ifndef BITCOIN_NODE_CONTEXT_H
#define BITCOIN_NODE_CONTEXT_H
#include <kernel/context.h>
#include <cassert>
#include <functional>
#include <memory>
@ -39,6 +41,8 @@ namespace node {
//! any member functions. It should just be a collection of references that can
//! be used without pulling in unwanted dependencies or functionality.
struct NodeContext {
//! libbitcoin_kernel context
std::unique_ptr<kernel::Context> kernel;
//! Init interface for initializing current process and connecting to other processes.
interfaces::Init* init{nullptr};
std::unique_ptr<AddrMan> addrman;