diff options
author | Carl Dong <contact@carldong.me> | 2022-05-25 14:55:44 -0400 |
---|---|---|
committer | Carl Dong <contact@carldong.me> | 2022-05-31 14:18:31 -0400 |
commit | 7d03feef8156ef37a4efa01dc591467bc7d957bf (patch) | |
tree | f8651a71516c604fa19b91706882d187e9a7c02d | |
parent | eeb4fc20c578b1e428a92d64cc9f8f903a677580 (diff) |
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>
-rw-r--r-- | src/Makefile.am | 1 | ||||
-rw-r--r-- | src/kernel/context.h | 20 | ||||
-rw-r--r-- | src/node/context.h | 4 |
3 files changed, 25 insertions, 0 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index a6e9048949..39b19b5e5c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -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 \ diff --git a/src/kernel/context.h b/src/kernel/context.h new file mode 100644 index 0000000000..e304dcb006 --- /dev/null +++ b/src/kernel/context.h @@ -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 diff --git a/src/node/context.h b/src/node/context.h index 91ba456219..31be308787 100644 --- a/src/node/context.h +++ b/src/node/context.h @@ -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; |