aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Dong <contact@carldong.me>2022-05-25 14:55:44 -0400
committerCarl Dong <contact@carldong.me>2022-05-31 14:18:31 -0400
commit7d03feef8156ef37a4efa01dc591467bc7d957bf (patch)
treef8651a71516c604fa19b91706882d187e9a7c02d
parenteeb4fc20c578b1e428a92d64cc9f8f903a677580 (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.am1
-rw-r--r--src/kernel/context.h20
-rw-r--r--src/node/context.h4
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;