elements/src/node
W. J. van der Laan 602b038d43
Merge #21366: refactor: replace util::Ref with std::any (C++17)
916ab0195d remove unused class util::Ref and its unit test (Sebastian Falbesoner)
8dbb87a393 refactor: replace util::Ref by std::any (C++17) (Sebastian Falbesoner)
95cccf8a4b util: introduce helper AnyPtr to access std::any instances (Sebastian Falbesoner)

Pull request description:

  As described in `util/ref.h`: "_This implements a small subset of the functionality in C++17's std::any class, and **can be dropped when the project updates to C++17**_". For accessing the contained object of a `std::any` instance, a helper template function `AnyPtr` is introduced (thanks to ryanofsky).

ACKs for top commit:
  hebasto:
    re-ACK 916ab0195d, with command
  ryanofsky:
    Code review ACK 916ab0195d. Changes since last review: rebase and replacing types with `auto`. I might have used `const auto*` and `auto*` instead of plain `auto` because I think the qualifiers are useful, but this is all good.

Tree-SHA512: fe2c3e4f5726f8ad40c61128339bb24ad11d2c261f71f7b934b1efe3e3279df14046452b0d9b566917ef61d5c7e0fd96ccbf35ff810357e305710f5002c27d47
2021-03-31 20:17:39 +02:00
..
coin.cpp node: Use existing NodeContext 2021-03-08 15:54:31 -05:00
coin.h node: Use mempool from node context instead of global 2019-12-05 14:22:05 -05:00
coinstats.cpp rpc: Improve gettxoutsetinfo help 2021-03-23 20:32:47 +01:00
coinstats.h node/coinstats: Pass in BlockManager to GetUTXOStats 2021-03-08 15:54:31 -05:00
context.cpp [net] Construct addrman outside connman 2021-03-20 10:24:36 +00:00
context.h [net] Construct addrman outside connman 2021-03-20 10:24:36 +00:00
interfaces.cpp refactor: replace util::Ref by std::any (C++17) 2021-03-29 23:29:42 +02:00
psbt.cpp scripted-diff: Bump copyright headers 2020-04-16 13:33:09 -04:00
psbt.h refactor: post Optional<> removal cleanups 2021-03-17 14:56:20 +08:00
README.md [docs] Document src subdirectories and different libraries 2019-04-09 17:53:08 -04:00
transaction.cpp Merge #21162: Net Processing: Move RelayTransaction() into PeerManager 2021-03-18 14:57:50 +08:00
transaction.h scripted-diff: Use [[nodiscard]] (C++17) instead of NODISCARD 2020-11-26 09:05:59 +00:00
ui_interface.cpp gui: change combiner for signals to optional_last_value 2020-07-01 21:40:51 +08:00
ui_interface.h scripted-diff: Move ui_interface to the node lib 2020-06-27 11:49:28 -04:00
utxo_snapshot.h scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00

src/node/

The src/node/ directory contains code that needs to access node state (state in CChain, CBlockIndex, CCoinsView, CTxMemPool, and similar classes).

Code in src/node/ is meant to be segregated from code in src/wallet/ and src/qt/, to ensure wallet and GUI code changes don't interfere with node operation, to allow wallet and GUI code to run in separate processes, and to perhaps eventually allow wallet and GUI code to be maintained in separate source repositories.

As a rule of thumb, code in one of the src/node/, src/wallet/, or src/qt/ directories should avoid calling code in the other directories directly, and only invoke it indirectly through the more limited src/interfaces/ classes.

The src/node/ directory is a new directory introduced in #14978 and at the moment is sparsely populated. Eventually more substantial files like src/validation.cpp and src/txmempool.cpp might be moved there.