#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::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<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