#include <capnp/schema.h>
#include <cassert>
#include <cstddef>
#include <cstring>
#include <functional>
#include <kj/string-tree.h>
#include <mutex>
#include <string>
#include <tuple>
#include <type_traits>
#include <utility>
#include <variant>
#include <vector>
Go to the source code of this file.
|
| struct | mp::TypeList< Types > |
| | Generic utility functions used by capnp code. More...
|
| |
| struct | mp::Split< 0, _Second, _First, true > |
| | Specialization of above (base case) More...
|
| |
| struct | mp::Split< index, TypeList< Type, _Second... >, TypeList< _First... >, false > |
| | Specialization of above (recursive case) More...
|
| |
| struct | mp::_Require< SfinaeExpr, Result_ > |
| | SFINAE helper, see using Require below. More...
|
| |
| struct | mp::Priority< priority > |
| | Function parameter type for prioritizing overloaded function calls that would otherwise be ambiguous. More...
|
| |
| struct | mp::Priority< 0 > |
| | Specialization of above (base case) More...
|
| |
| struct | mp::PtrOrValue< T > |
| | Convenient wrapper around std::variant<T*, T> More...
|
| |
| class | mp::Lock |
| |
| struct | mp::GuardedRef< T > |
| |
| struct | mp::UnlockGuard< Lock > |
| | Analog to std::lock_guard that unlocks instead of locks. More...
|
| |
|
| namespace | mp |
| | Functions to serialize / deserialize common bitcoin types.
|
| |
|
| template<typename Callable > |
| using | mp::ResultOf = decltype(std::declval< Callable >()()) |
| | Type helper giving return type of a callable type. More...
|
| |
| template<typename T > |
| using | mp::RemoveCvRef = std::remove_cv_t< std::remove_reference_t< T > > |
| | Substitutue for std::remove_cvref_t. More...
|
| |
| template<typename T > |
| using | mp::Decay = std::decay_t< T > |
| | Type helper abbreviating std::decay. More...
|
| |
| template<typename SfinaeExpr , typename Result = void> |
| using | mp::Require = typename _Require< SfinaeExpr, Result >::Result |
| | SFINAE helper, basically the same as to C++17's void_t, but allowing types other than void to be returned. More...
|
| |
| using | mp::FdToArgsFn = std::function< std::vector< std::string >(int fd)> |
| | Callback type used by SpawnProcess below. More...
|
| |
|
| template<template< typename... > class Class, typename... Types, typename... Args> |
| Class< Types..., std::remove_reference_t< Args >... > | mp::Make (Args &&... args) |
| | Construct a template class value by deducing template arguments from the types of constructor arguments, so they don't need to be specified manually. More...
|
| |
| template<typename T > |
| const char * | mp::TypeName () |
| | Return capnp type name with filename prefix removed. More...
|
| |
| class | mp::MP_CAPABILITY ("mutex") Mutex |
| |
| template<class U > |
| | mp::GuardedRef (Mutex &, U &) -> GuardedRef< U > |
| |
| template<typename Lock , typename Callback > |
| void | mp::Unlock (Lock &lock, Callback &&callback) |
| |
| std::string | mp::ThreadName (const char *exe_name) |
| | Format current thread name as "{exe_name}-{$pid}/{thread_name}-{$tid}". More...
|
| |
| std::string | mp::LogEscape (const kj::StringTree &string, size_t max_size) |
| | Escape binary string for use in log so it doesn't trigger unicode decode errors in python unit tests. More...
|
| |
| int | mp::SpawnProcess (int &pid, FdToArgsFn &&fd_to_args) |
| | Spawn a new process that communicates with the current process over a socket pair. More...
|
| |
| void | mp::ExecProcess (const std::vector< std::string > &args) |
| | Call execvp with vector args. More...
|
| |
| int | mp::WaitProcess (int pid) |
| | Wait for a process to exit and return its exit code. More...
|
| |
| char * | mp::CharCast (char *c) |
| |
| char * | mp::CharCast (unsigned char *c) |
| |
| const char * | mp::CharCast (const char *c) |
| |
| const char * | mp::CharCast (const unsigned char *c) |
| |
◆ MP_ACQUIRE
| #define MP_ACQUIRE |
( |
|
... | ) |
MP_TSA(acquire_capability(__VA_ARGS__)) |
◆ MP_ASSERT_CAPABILITY
| #define MP_ASSERT_CAPABILITY |
( |
|
x | ) |
MP_TSA(assert_capability(x)) |
◆ MP_CAPABILITY
| #define MP_CAPABILITY |
( |
|
x | ) |
MP_TSA(capability(x)) |
◆ MP_GUARDED_BY
| #define MP_GUARDED_BY |
( |
|
x | ) |
MP_TSA(guarded_by(x)) |
◆ MP_NO_TSA
| #define MP_NO_TSA MP_TSA(no_thread_safety_analysis) |
◆ MP_RELEASE
| #define MP_RELEASE |
( |
|
... | ) |
MP_TSA(release_capability(__VA_ARGS__)) |
◆ MP_REQUIRES
| #define MP_REQUIRES |
( |
|
x | ) |
MP_TSA(requires_capability(x)) |
◆ MP_SCOPED_CAPABILITY
| #define MP_SCOPED_CAPABILITY MP_TSA(scoped_lockable) |
◆ MP_TSA