|
using | Conn = BasicConn< Request, App > |
|
using | Headers = std::vector< std::pair< std::string, std::string > > |
|
using | Serv = BasicServ< Conn, App > |
|
using | ConstBuffer = boost::asio::const_buffer |
|
using | MutableBuffer = boost::asio::mutable_buffer |
|
using | EpollEvent = epoll_event |
|
using | FileHandle = BasicHandle< FilePolicy > |
|
using | HookList = boost::intrusive::list< Hook, boost::intrusive::constant_time_size< false > > |
|
using | WatchFileHandle = BasicHandle< WatchFilePolicy > |
|
using | IoSlot = BasicSlot< CyclTime, int, unsigned > |
|
using | HistogramPtr = std::unique_ptr< Histogram > |
|
using | MetricCallbackFunction = std::function< void(CyclTime now, HistogramPtr &&time_hist, HistogramPtr &&work_hist)> |
| MetricCallbackFunction implementer is responsible for deleting the Histogram.
|
|
using | LoopCallbackFunction = std::function< void(CyclTime now)> |
| LoopCallbackFunction called at end of each Reactor loop, indicating micros taken and work done.
|
|
using | TimerSlot = BasicSlot< CyclTime, Timer & > |
|
template<typename ProtocolT > |
using | BasicEndpoint = boost::asio::generic::basic_endpoint< ProtocolT > |
|
using | DgramEndpoint = BasicEndpoint< DgramProtocol > |
|
using | StreamEndpoint = BasicEndpoint< StreamProtocol > |
|
template<typename ProtocolT > |
using | IpEndpoint = boost::asio::ip::basic_endpoint< ProtocolT > |
|
using | UdpEndpoint = IpEndpoint< UdpProtocol > |
|
using | TcpEndpoint = IpEndpoint< TcpProtocol > |
|
template<typename ProtocolT > |
using | UnixEndpoint = boost::asio::local::basic_endpoint< ProtocolT > |
|
using | UnixDgramEndpoint = UnixEndpoint< UnixDgramProtocol > |
|
using | UnixStreamEndpoint = UnixEndpoint< UnixStreamProtocol > |
|
using | IpAddr = boost::asio::ip::address |
|
using | IpAddrV4 = boost::asio::ip::address_v4 |
|
using | IpAddrV6 = boost::asio::ip::address_v6 |
|
using | AddrInfoFuture = std::future< AddrInfoPtr > |
|
using | AddrInfoPtr = std::unique_ptr< addrinfo, void(*)(addrinfo *)> |
|
using | IsoDate = IntWrapper< IsoDatePolicy > |
| ISO8601 date in yyymmdd format.
|
|
using | JDay = IntWrapper< JDayPolicy > |
| Julian day.
|
|
using | LogStream = util::OStream< MaxLogLine > |
| Logger callback function.
|
|
using | LogMsgPtr = StoragePtr< MaxLogLine > |
|
using | PidFile = std::unique_ptr< pidfh, detail::PidFileDeleter > |
|
using | Seconds = std::chrono::seconds |
|
using | Decis = std::chrono::duration< int64_t, std::deci > |
|
using | Millis = std::chrono::milliseconds |
|
using | Micros = std::chrono::microseconds |
|
using | Nanos = std::chrono::nanoseconds |
|
using | NanoTime = Nanos |
|
using | Duration = Nanos |
|
using | MonoTime = MonoClock::time_point |
|
using | WallTime = WallClock::time_point |
|
using | Int16Policy = IntPolicy< std::int16_t > |
|
using | Int32Policy = IntPolicy< std::int32_t > |
|
using | Int64Policy = IntPolicy< std::int64_t > |
|
using | Id16 = IntWrapper< Id16Policy > |
| 16 bit identifier.
|
|
using | Id32 = IntWrapper< Id32Policy > |
| 32 bit identifier.
|
|
using | Id64 = IntWrapper< Id64Policy > |
| 64 bit identifier.
|
|
template<typename KeyT > |
using | RobinHash = robin_hood::hash< KeyT > |
| Robin Hood hash function template.
|
|
template<typename KeyT , typename ValueT , typename HashT = RobinHash<KeyT>, typename KeyEqualT = std::equal_to<KeyT>, std::size_t MaxLoadFactor100N = 80> |
using | RobinMap = robin_hood::unordered_map< KeyT, ValueT, HashT, KeyEqualT, MaxLoadFactor100N > |
|
template<typename KeyT , typename ValueT , typename HashT = RobinHash<KeyT>, typename KeyEqualT = std::equal_to<KeyT>, std::size_t MaxLoadFactor100N = 80> |
using | RobinFlatMap = robin_hood::unordered_flat_map< KeyT, ValueT, HashT, KeyEqualT, MaxLoadFactor100N > |
| Robin Hood unordered flat map.
|
|
template<typename KeyT , typename ValueT , typename HashT = RobinHash<KeyT>, typename KeyEqualT = std::equal_to<KeyT>, std::size_t MaxLoadFactor100N = 80> |
using | RobinNodeMap = robin_hood::unordered_node_map< KeyT, ValueT, HashT, KeyEqualT, MaxLoadFactor100N > |
| Robin Hood unordered node map.
|
|
template<typename KeyT , typename HashT = RobinHash<KeyT>, typename KeyEqualT = std::equal_to<KeyT>, std::size_t MaxLoadFactor100N = 80> |
using | RobinSet = robin_hood::unordered_set< KeyT, HashT, KeyEqualT, MaxLoadFactor100N > |
|
template<typename KeyT , typename HashT = RobinHash<KeyT>, typename KeyEqualT = std::equal_to<KeyT>, std::size_t MaxLoadFactor100N = 80> |
using | RobinFlatSet = robin_hood::unordered_flat_set< KeyT, HashT, KeyEqualT, MaxLoadFactor100N > |
| Robin Hood unordered flat set.
|
|
template<typename KeyT , typename HashT = RobinHash<KeyT>, typename KeyEqualT = std::equal_to<KeyT>, std::size_t MaxLoadFactor100N = 80> |
using | RobinNodeSet = robin_hood::unordered_node_set< KeyT, HashT, KeyEqualT, MaxLoadFactor100N > |
| Robin Hood unordered node set.
|
|
template<std::size_t SizeN> |
using | StoragePtr = std::unique_ptr< void, detail::StorageDeleter< SizeN > > |
|
using | OStreamJoiner = std::experimental::ostream_joiner< char > |
|
using | sv = std::string_view |
|
template<std::size_t N> |
using | Row = std::array< std::string_view, N > |
|
template<typename T > |
using | is_string = is_instantiation_of< T, std::basic_string > |
|
template<typename T > |
using | is_string_view = is_instantiation_of< T, std::basic_string_view > |
|
|
int64_t | min (const Histogram &h) noexcept |
|
int64_t | max (const Histogram &h) noexcept |
|
int64_t | value_at_percentile (const Histogram &h, double percentile) noexcept |
|
double | mean (const Histogram &h) noexcept |
|
double | stddev (const Histogram &h) noexcept |
|
auto | put_percentiles (const Histogram &h, std::int32_t ticks_per_half_distance, double value_scale) noexcept |
|
template<typename StreamT >
requires Streamable<StreamT> |
StreamT & | operator<< (StreamT &os, PutPercentiles pp) |
|
const std::error_category & | error_category () noexcept |
|
std::error_code | make_error_code (Status status) |
|
Status | http_status (const std::error_code &ec) |
|
const char * | enum_string (Status status) noexcept |
|
const char * | enum_string (Method method) noexcept |
|
template<typename StreamT >
requires Streamable<StreamT> |
StreamT & | operator<< (StreamT &os, Method method) |
|
template<typename StreamT >
requires Streamable<StreamT> |
StreamT & | operator<< (StreamT &os, Status status) |
|
ConstBuffer | advance (ConstBuffer buf, std::size_t n) noexcept |
|
MutableBuffer | advance (MutableBuffer buf, std::size_t n) noexcept |
|
template<typename DataT > |
void | emplace_event (MsgEvent &ev, int type) noexcept |
|
template<typename DataT , typename... ArgsT> |
void | emplace_event (MsgEvent &ev, int type, ArgsT &&... args) noexcept |
|
template<typename DataT > |
const DataT & | data (const MsgEvent &ev) noexcept |
|
template<typename DataT > |
DataT & | data (MsgEvent &ev) noexcept |
|
std::size_t | file_size (int fd) |
| Get file size.
|
|
mode_t | file_mode () noexcept |
| Get current file mode.
|
|
void | set_non_block (int fd, std::error_code &ec) noexcept |
|
void | set_non_block (int fd) |
|
template<typename PolicyT > |
constexpr bool | operator== (const BasicHandle< PolicyT > &lhs, const BasicHandle< PolicyT > &rhs) |
|
template<typename PolicyT > |
constexpr bool | operator!= (const BasicHandle< PolicyT > &lhs, const BasicHandle< PolicyT > &rhs) |
|
void | dispatch (CyclTime now, const HookList &l) noexcept |
|
constexpr bool | operator== (WatchFile lhs, WatchFile rhs) |
|
constexpr bool | operator!= (WatchFile lhs, WatchFile rhs) |
|
FileHandle | inotify_init (int flags, std::error_code &ec) noexcept |
| Initialise an inotify instance.
|
|
FileHandle | inotify_init (std::error_code &ec) noexcept |
| Initialise an inotify instance.
|
|
FileHandle | inotify_init (int flags=0) |
|
WatchFileHandle | inotify_add_watch (int fd, const char *path, std::uint32_t mask, std::error_code &ec) noexcept |
| Add a watch to an initialised inotify instance.
|
|
WatchFileHandle | inotify_add_watch (int fd, const char *path, std::uint32_t mask) |
| Add a watch to an initialised inotify instance.
|
|
void | intrusive_ptr_release (Timer::Impl *impl) noexcept |
|
void | intrusive_ptr_add_ref (Timer::Impl *impl) noexcept |
|
std::ostream & | operator<< (std::ostream &os, const Timer &tmr) |
|
constexpr std::uint16_t | bswap (std::uint16_t n) noexcept |
|
constexpr std::int16_t | bswap (std::int16_t n) noexcept |
|
constexpr std::uint32_t | bswap (std::uint32_t n) noexcept |
|
constexpr std::int32_t | bswap (std::int32_t n) noexcept |
|
constexpr std::uint64_t | bswap (std::uint64_t n) noexcept |
|
constexpr std::int64_t | bswap (std::int64_t n) noexcept |
|
template<typename ValueT >
requires std::integral<ValueT> |
constexpr ValueT | ntoh (ValueT n) noexcept |
|
template<typename ValueT >
requires std::integral<ValueT> |
constexpr ValueT | hton (ValueT n) noexcept |
|
template<typename ValueT >
requires std::integral<ValueT> |
constexpr ValueT | ltoh (ValueT n) noexcept |
|
template<typename ValueT >
requires std::integral<ValueT> |
constexpr ValueT | htol (ValueT n) noexcept |
|
AddrInfoPtr | parse_endpoint (string_view uri, int type) |
|
istream & | operator>> (istream &is, DgramEndpoint &ep) |
|
istream & | operator>> (istream &is, StreamEndpoint &ep) |
|
DgramEndpoint | parse_dgram_endpoint (std::string_view uri) |
|
StreamEndpoint | parse_stream_endpoint (std::string_view uri) |
|
template<typename StreamT , class T >
requires Streamable<StreamT> && std::same_as<T, DgramEndpoint> |
StreamT & | operator<< (StreamT &os, const T &ep) |
|
template<typename StreamT , class T >
requires Streamable<StreamT> && std::same_as<T, StreamEndpoint> |
StreamT & | operator<< (StreamT &os, const T &ep) |
|
const std::error_category & | gai_error_category () noexcept |
|
std::error_code | make_gai_error_code (int err) noexcept |
|
constexpr std::uint16_t | get_length (const char *buf, std::endian net_byte_order) noexcept |
|
std::uint16_t | get_length (ConstBuffer buf, std::endian net_byte_order) noexcept |
|
void | put_length (char *buf, std::uint16_t len, std::endian net_byte_order) noexcept |
|
void | put_length (MutableBuffer buf, std::uint16_t len, std::endian net_byte_order) noexcept |
|
template<typename FnT > |
std::size_t | parse_frame (ConstBuffer buf, FnT fn, std::endian net_byte_order) |
|
template<typename FnT > |
std::size_t | parse_frame (std::string_view buf, FnT fn, std::endian net_byte_order) |
|
template<typename ProtocolT > |
std::pair< IoSock, IoSock > | socketpair (ProtocolT protocol) |
|
void | join_group (int sockfd, const IpMcastGroup &group, std::error_code &ec) noexcept |
| Join a multicast group.
|
|
void | join_group (int sockfd, const IpMcastGroup &group) |
| Join a multicast group.
|
|
void | join_group (int sockfd, const IpAddr &addr, unsigned ifindex, std::error_code &ec) noexcept |
| Join a multicast group.
|
|
void | join_group (int sockfd, const IpAddr &addr, unsigned ifindex) |
| Join a multicast group.
|
|
void | join_group (int sockfd, const IpAddr &addr, const char *ifname, std::error_code &ec) noexcept |
| Join a multicast group. The system will choose an appropriate interface if ifname is null.
|
|
void | join_group (int sockfd, const IpAddr &addr, const char *ifname) |
| Join a multicast group. The system will choose an appropriate interface if ifname is null.
|
|
void | leave_group (int sockfd, const IpMcastGroup &group, std::error_code &ec) noexcept |
| Leave a multicast group.
|
|
void | leave_group (int sockfd, const IpMcastGroup &group) |
| Leave a multicast group.
|
|
void | leave_group (int sockfd, const IpAddr &addr, unsigned ifindex, std::error_code &ec) noexcept |
| Leave a multicast group.
|
|
void | leave_group (int sockfd, const IpAddr &addr, unsigned ifindex) |
| Leave a multicast group.
|
|
void | leave_group (int sockfd, const IpAddr &addr, const char *ifname, std::error_code &ec) noexcept |
| Leave a multicast group. The system will leave on the first matching interface if ifname is null.
|
|
void | leave_group (int sockfd, const IpAddr &addr, const char *ifname) |
| Leave a multicast group. The system will leave on the first matching interface if ifname is null.
|
|
void | set_ip_mcast_if (int sockfd, int family, unsigned ifindex, std::error_code &ec) noexcept |
|
void | set_ip_mcast_if (int sockfd, int family, unsigned ifindex) |
|
void | set_ip_mcast_if (int sockfd, int family, const char *ifname, std::error_code &ec) noexcept |
|
void | set_ip_mcast_if (int sockfd, int family, const char *ifname) |
|
void | set_ip_mcast_loop (int sockfd, int family, bool enabled, std::error_code &ec) noexcept |
| Determines whether sent multicast packets should be looped back to the local sockets.
|
|
void | set_ip_mcast_loop (int sockfd, int family, bool enabled) |
| Determines whether sent multicast packets should be looped back to the local sockets.
|
|
void | set_ip_mcast_ttl (int sockfd, int family, int ttl, std::error_code &ec) noexcept |
| Set or read the time-to-live value of outgoing multicast packets for this socket.
|
|
void | set_ip_mcast_ttl (int sockfd, int family, int ttl) |
| Set or read the time-to-live value of outgoing multicast packets for this socket.
|
|
RateLimit | parse_rate_limit (const string &s) |
|
istream & | operator>> (istream &is, RateLimit &rl) |
|
template<typename StreamT >
requires Streamable<StreamT> |
StreamT & | operator<< (StreamT &os, RateLimit rl) |
|
template<typename EndpointT > |
EndpointT | get_endpoint (AddrInfoFuture &future) |
| Wait for future and convert result to endpoint.
|
|
template<typename ResultT > |
bool | is_ready (std::future< ResultT > &future) |
| Returns true if future is ready.
|
|
AddrInfoPtr | get_unix_addrinfo (std::string_view path, int type) |
| Create an addrinfo structure for a Unix domain address.
|
|
template<typename EndpointT > |
void | get_sock_name (int sockfd, EndpointT &ep, std::error_code &ec) noexcept |
|
template<typename EndpointT > |
void | get_sock_name (int sockfd, EndpointT &ep) |
|
std::error_code | get_so_error (int sockfd, std::error_code &ec) noexcept |
|
std::error_code | get_so_error (int sockfd) |
|
int | get_so_rcv_buf (int sockfd, std::error_code &ec) noexcept |
|
int | get_so_rcv_buf (int sockfd) |
|
int | get_so_snd_buf (int sockfd, std::error_code &ec) noexcept |
|
int | get_so_snd_buf (int sockfd) |
|
bool | is_tcp_no_delay (int sockfd, std::error_code &ec) noexcept |
|
bool | is_tcp_no_delay (int sockfd) |
|
void | set_so_rcv_buf (int sockfd, int size, std::error_code &ec) noexcept |
|
void | set_so_rcv_buf (int sockfd, int size) |
|
void | set_so_reuse_addr (int sockfd, bool enabled, std::error_code &ec) noexcept |
|
void | set_so_reuse_addr (int sockfd, bool enabled) |
|
void | set_so_snd_buf (int sockfd, int size, std::error_code &ec) noexcept |
|
void | set_so_snd_buf (int sockfd, int size) |
|
void | set_tcp_no_delay (int sockfd, bool enabled, std::error_code &ec) noexcept |
|
void | set_tcp_no_delay (int sockfd, bool enabled) |
|
void | set_tcp_syn_nt (int sockfd, int retrans, std::error_code &ec) noexcept |
|
void | set_tcp_syn_nt (int sockfd, int retrans) |
|
void | close_all () noexcept |
| Close all non-standard file handles.
|
|
void | daemon () |
| Daemonise process. Detach from controlling terminal and run in the background as a system daemon.
|
|
constexpr auto | operator""_ymd (unsigned long long val) noexcept |
|
constexpr auto | operator""_jd (unsigned long long val) noexcept |
|
constexpr auto | ymd_to_iso (int year, int mon, int mday) noexcept |
| Gregorian to ISO8601 date.
|
|
constexpr auto | ymd_to_jd (int year, int mon, int mday) noexcept |
| Gregorian date to Julian day.
|
|
constexpr auto | iso_to_jd (IsoDate iso) noexcept |
| ISO8601 to Julian day.
|
|
constexpr auto | jd_to_iso (JDay jd) noexcept |
| Julian day to ISO8601.
|
|
constexpr std::int32_t | jd_to_mjd (JDay jd) noexcept |
| Juilian day to Modified Julian day. Epoch is November 17, 1858.
|
|
constexpr auto | mjd_to_jd (std::int32_t mjd) noexcept |
| Modified Julian day to Julian day. Epoch is November 17, 1858.
|
|
constexpr std::int32_t | jd_to_tjd (JDay jd) noexcept |
| Julian day to Truncated Julian day. Epoch is May 24, 1968.
|
|
constexpr JDay | tjd_to_jd (std::int32_t tjd) noexcept |
| Truncated Julian day to Julian day. Epoch is May 24, 1968.
|
|
constexpr WallTime | jd_to_time (JDay jd) noexcept |
| Julian day to Unix time.
|
|
constexpr IsoDate | maybe_jd_to_iso (JDay jd) noexcept |
| Julian day to ISO8601 if argument is non-zero.
|
|
constexpr JDay | maybe_iso_to_jd (IsoDate iso) noexcept |
| ISO8601 to Julian day if argument is non-zero.
|
|
constexpr bool | is_week_day (JDay jday) noexcept |
|
constexpr bool | is_weekend_day (JDay jday) noexcept |
|
constexpr auto | parse_date (std::string_view sv) noexcept |
|
constexpr std::optional< WallTime > | parse_time (std::string_view sv) noexcept |
|
std::error_code | make_error (int err) noexcept |
|
constexpr std::size_t | ceil_cache_line (std::size_t size) noexcept |
|
constexpr std::size_t | ceil_page (std::size_t size) noexcept |
|
LogStream & | log_stream () noexcept |
|
Logger & | null_logger () noexcept |
| Null logger. This logger does nothing and is effectively /dev/null.
|
|
Logger & | std_logger () noexcept |
|
Logger & | sys_logger () noexcept |
| System logger. This logger calls syslog().
|
|
const char * | log_label (LogLevel level) noexcept |
| Return log label for given log level.
|
|
LogLevel | get_log_level () noexcept |
| Return current log level.
|
|
LogLevel | set_log_level (LogLevel level) noexcept |
| Set log level globally for all threads.
|
|
Logger & | get_logger () noexcept |
| Return current logger.
|
|
Logger & | set_logger (Logger &logger) noexcept |
| Set logger globally for all threads.
|
|
void | write_log (WallTime ts, LogLevel level, LogMsgPtr &&msg, std::size_t size) noexcept |
|
bool | is_log_level (LogLevel level) noexcept |
| Return true if level is less than or equal to current log level.
|
|
Logger & | set_logger (std::nullptr_t) noexcept |
|
template<typename StreamT >
requires Streamable<StreamT> |
StreamT & | operator<< (StreamT &os, LogLevel level) |
|
PidFile | open_pid_file (const char *path, mode_t mode) |
|
void | close_pid_file (PidFile &pf) noexcept |
| Close pidfile without removing it. This function should be used when forking daemon processes.
|
|
void | write_pid_file (PidFile &pf) |
| Write process' PID into pidfile.
|
|
void | sig_block_all () |
| Block all signals.
|
|
cpu_set_t | parse_cpu_set (string_view s) noexcept |
|
int | parse_sched_policy (string_view s) |
|
void | set_thread_attrs (const ThreadConfig &config) |
|
TOOLBOX_WEAK Nanos | get_time (clockid_t clock_id) noexcept |
|
template<typename RepT , typename PeriodT > |
constexpr bool | is_zero (std::chrono::duration< RepT, PeriodT > d) noexcept |
|
template<typename ClockT > |
constexpr bool | is_zero (std::chrono::time_point< ClockT, Duration > t) noexcept |
|
template<typename ClockT , typename DurationT > |
constexpr DurationT | time_since_epoch (std::chrono::time_point< ClockT, Duration > t) noexcept |
|
template<typename ClockT > |
constexpr std::int64_t | ms_since_epoch (std::chrono::time_point< ClockT, Duration > t) noexcept |
|
template<typename ClockT > |
constexpr std::int64_t | us_since_epoch (std::chrono::time_point< ClockT, Duration > t) noexcept |
|
template<typename ClockT > |
constexpr std::int64_t | ns_since_epoch (std::chrono::time_point< ClockT, Duration > t) noexcept |
|
template<typename ClockT , typename RepT , typename PeriodT > |
constexpr auto | to_time (std::chrono::duration< RepT, PeriodT > d) noexcept |
|
template<typename ClockT > |
constexpr auto | to_time (timeval tv) noexcept |
|
template<typename ClockT > |
constexpr auto | to_time (timespec ts) noexcept |
|
template<typename RepT , typename PeriodT > |
constexpr timeval | to_timeval (std::chrono::duration< RepT, PeriodT > d) noexcept |
|
template<typename ClockT > |
constexpr timeval | to_timeval (std::chrono::time_point< ClockT, Duration > t) noexcept |
|
template<typename RepT , typename PeriodT > |
constexpr timespec | to_timespec (std::chrono::duration< RepT, PeriodT > d) noexcept |
|
template<typename ClockT > |
constexpr timespec | to_timespec (std::chrono::time_point< ClockT, Duration > t) noexcept |
|
template<typename StreamT >
requires Streamable<StreamT> |
StreamT & | operator<< (StreamT &os, MonoTime t) |
|
template<typename StreamT >
requires Streamable<StreamT> |
StreamT & | operator<< (StreamT &os, WallTime t) |
|
template<typename DurationT = Seconds> |
auto | put_time (WallTime t, const char *fmt) noexcept |
|
template<typename DurationT , typename StreamT >
requires Streamable<StreamT> |
StreamT & | operator<< (StreamT &os, PutTime< DurationT > pt) |
|
constexpr bool | is_zero (timeval tv) noexcept |
|
void | clear (timeval &tv) noexcept |
|
timeval | operator+ (timeval lhs, timeval rhs) noexcept |
|
timeval | operator- (timeval lhs, timeval rhs) noexcept |
|
constexpr bool | is_zero (timespec ts) noexcept |
|
void | clear (timespec &ts) noexcept |
|
timespec | operator+ (timespec lhs, timespec rhs) noexcept |
|
timespec | operator- (timespec lhs, timespec rhs) noexcept |
|
constexpr auto | parse_nanos (std::string_view sv) noexcept |
|
constexpr std::optional< Nanos > | parse_time_only (std::string_view sv) noexcept |
|
TOOLBOX_WEAK void * | allocate (size_t size) |
|
TOOLBOX_WEAK void | deallocate (void *ptr, size_t size) noexcept |
|
TOOLBOX_API void * | allocate (std::size_t size) |
|
TOOLBOX_API void | deallocate (void *ptr, std::size_t size) noexcept |
|
template<typename ValueT , std::size_t SizeN> |
constexpr std::size_t | array_size (const ValueT(&)[SizeN]) noexcept |
|
template<typename ValueT > |
constexpr ArrayView< std::remove_volatile_t< ValueT > > | make_array_view (const ValueT *ptr, std::size_t len) noexcept |
|
template<typename ValueT , std::size_t SizeN> |
constexpr ArrayView< std::remove_cv_t< ValueT > > | make_array_view (ValueT(&arr)[SizeN]) noexcept |
|
template<typename FnT > |
std::istream & | parse_section (std::istream &is, FnT fn, std::string *name=nullptr) |
|
template<typename EnumT >
requires Enum<EnumT> |
constexpr EnumT | box (typename std::underlying_type_t< EnumT > val) noexcept |
|
template<typename EnumT >
requires Enum<EnumT> |
constexpr std::underlying_type_t< EnumT > | unbox (EnumT val) noexcept |
|
constexpr Test | operator""_test (unsigned long long val) noexcept |
|
const char * | enum_string (Test t) |
|
ostream & | operator<< (ostream &os, Test t) |
|
ErrMsg & | err_msg () noexcept |
|
template<typename ValueT > |
ErrMsg & | operator<< (ErrMsg &err, ValueT &&val) |
|
template<typename ExceptionT > |
auto | put_as_json (const ExceptionT &e) |
|
template<typename ExceptionT > |
auto | put_with_code (const ExceptionT &e) |
|
template<typename FnT > |
auto | make_finally (FnT fn) noexcept |
|
template<typename PolicyT > |
std::size_t | hash_value (IntWrapper< PolicyT > wrapper) |
|
constexpr Id16 | operator""_id16 (unsigned long long val) noexcept |
|
constexpr Id32 | operator""_id32 (unsigned long long val) noexcept |
|
constexpr Id64 | operator""_id64 (unsigned long long val) noexcept |
|
constexpr bool | is_pow2 (std::size_t n) noexcept |
|
unsigned | next_pow2 (unsigned n) noexcept |
|
unsigned long | next_pow2 (unsigned long n) noexcept |
|
template<int BitsN> |
constexpr std::size_t | ceil_pow2 (std::size_t size) noexcept |
|
double | var (const VarAccum &v) noexcept |
|
double | varp (const VarAccum &v) noexcept |
|
double | stdev (const VarAccum &v) noexcept |
|
double | stdevp (const VarAccum &v) noexcept |
|
double | zscore (double mean, double sd, double val) noexcept |
|
double | pctile95 (double mean, double sd) noexcept |
|
double | pctile99 (double mean, double sd) noexcept |
|
double | pctile999 (double mean, double sd) noexcept |
|
constexpr std::size_t | ceil (std::size_t dividend, std::size_t divisor) noexcept |
|
constexpr std::uint64_t | pow10 (int n) noexcept |
|
template<typename StreamT >
requires Streamable<StreamT> |
StreamT & | operator<< (StreamT &out, const Options &options) |
|
std::mt19937_64 & | mt19937_64_rng () noexcept |
|
template<class IntT > |
IntT | randint (IntT a, IntT b) |
|
template<typename DerivedT , typename PolicyT > |
void | intrusive_ptr_add_ref (const RefCount< DerivedT, PolicyT > *ptr) noexcept |
|
template<typename DerivedT , typename PolicyT > |
void | intrusive_ptr_release (const RefCount< DerivedT, PolicyT > *ptr) noexcept |
|
template<typename ValueT , typename... ArgsT> |
boost::intrusive_ptr< ValueT > | make_intrusive (ArgsT &&... args) |
|
template<auto FnT> |
constexpr auto | bind () noexcept |
|
template<typename ClassT > |
constexpr auto | bind (ClassT *obj) noexcept |
|
template<auto MemFnT, typename ClassT = typename FunctionTraits<decltype(MemFnT)>::ClassType> |
constexpr auto | bind (ClassT *obj) noexcept |
|
template<std::size_t SizeN> |
StoragePtr< SizeN > | make_storage () |
| Returns a block of dynamic storage acquired from the custom allocator.
|
|
TOOLBOX_API void | reset (std::ostream &os) noexcept |
|
template<auto DelimT, typename ArgT , typename... ArgsT> |
void | join (std::ostream &os, const ArgT &arg, const ArgsT &... args) |
|
template<typename OStreamT , typename FnT > |
auto | make_stream_inserter (FnT fn) |
| Returns a StreamInserter object, automatically deducing functor type from arguments.
|
|
void | ltrim (string_view &s) noexcept |
|
void | ltrim (string &s) noexcept |
|
void | rtrim (string_view &s) noexcept |
|
void | rtrim (string &s) noexcept |
|
pair< string_view, string_view > | split_pair (string_view s, string_view delim) noexcept |
|
pair< string_view, string_view > | split_pair (string_view s, char delim) noexcept |
|
pair< string, string > | split_pair (const string &s, string_view delim) |
|
pair< string, string > | split_pair (const string &s, char delim) |
|
template<typename ValueT > |
constexpr ValueT | from_string (std::string_view sv) |
|
template<typename ValueT > |
constexpr ValueT | from_string (const std::string &s) |
|
template<typename ValueT > |
constexpr ValueT | from_string (const char *s) |
|
template<typename ValueT > |
std::string | to_string (ValueT &&val) |
|
template<typename ValueT >
requires Arithmetic<ValueT> |
std::string | to_string (ValueT &&val) |
|
template<std::size_t SizeN> |
constexpr std::string_view | to_string_view (const char(&val)[SizeN]) noexcept |
|
void | trim (std::string_view &s) noexcept |
|
void | trim (std::string &s) noexcept |
|
std::string_view | ltrim_copy (std::string_view s) noexcept |
|
std::string | ltrim_copy (std::string s) noexcept |
|
std::string_view | rtrim_copy (std::string_view s) noexcept |
|
std::string | rtrim_copy (std::string s) noexcept |
|
std::string_view | trim_copy (std::string_view s) noexcept |
|
std::string | trim_copy (std::string s) noexcept |
|
template<char PadC> |
constexpr std::size_t | pstrlen (const char *src, std::size_t n) noexcept |
|
template<char PadC, std::size_t SizeN> |
constexpr std::size_t | pstrlen (const char(&src)[SizeN]) noexcept |
|
template<char PadC> |
constexpr std::size_t | pstrcpy (char *dst, const char *src, std::size_t n) noexcept |
|
template<char PadC, std::size_t SizeN> |
constexpr std::size_t | pstrcpy (char(&dst)[SizeN], const char *src) noexcept |
|
template<char PadC> |
constexpr std::size_t | pstrcpy (char *dst, std::string_view src, std::size_t n) noexcept |
|
template<char PadC, std::size_t SizeN> |
constexpr std::size_t | pstrcpy (char(&dst)[SizeN], std::string_view src) noexcept |
|
template<char PadC> |
constexpr std::size_t | pstrcpyid (char *dst, std::int64_t id, std::size_t n) noexcept |
|
template<char PadC, std::size_t SizeN> |
constexpr std::size_t | pstrcpyid (char(&dst)[SizeN], std::int64_t id) noexcept |
|
template<char PadC> |
constexpr std::size_t | lpstrlen (const char *src, std::size_t n) noexcept |
|
template<char PadC, std::size_t SizeN> |
constexpr std::size_t | lpstrlen (const char(&src)[SizeN]) noexcept |
|
template<char PadC> |
constexpr std::size_t | lpstrcpy (char *dst, const char *src, std::size_t n) noexcept |
|
template<char PadC, std::size_t SizeN> |
constexpr std::size_t | lpstrcpy (char(&dst)[SizeN], const char *src) noexcept |
|
template<char PadC> |
constexpr std::size_t | lpstrcpy (char *dst, std::string_view src, std::size_t n) noexcept |
|
template<char PadC, std::size_t SizeN> |
constexpr std::size_t | lpstrcpy (char(&dst)[SizeN], std::string_view src) noexcept |
|
template<typename... ArgsT> |
std::string | make_string (ArgsT &&... args) |
|
template<std::size_t MaxN> |
constexpr std::string_view | operator+ (const StringBuf< MaxN > &s) noexcept |
|
template<std::size_t MaxN, typename StreamT >
requires Streamable<StreamT> |
StreamT & | operator<< (StreamT &os, const StringBuf< MaxN > &rhs) |
|
template<typename... TagsT, typename... ValuesT> |
constexpr bool | empty (const detail::Struct< detail::Member< TagsT, ValuesT >... > &s) |
|
template<typename... TagsT, typename... ValuesT> |
constexpr std::size_t | size (const detail::Struct< detail::Member< TagsT, ValuesT >... > &s) |
|
template<typename TagT , typename... TagsT, typename... ValuesT> |
constexpr bool | has (const detail::Struct< detail::Member< TagsT, ValuesT >... > &s, TagT tag={}) |
|
template<typename TagT , typename... TagsT, typename... ValuesT> |
constexpr const auto & | get (const detail::Struct< detail::Member< TagsT, ValuesT >... > &s, TagT tag={}) |
|
template<typename TagT , typename... TagsT, typename... ValuesT> |
constexpr auto & | get (detail::Struct< detail::Member< TagsT, ValuesT >... > &s, TagT tag={}) |
|
template<typename FnT > |
constexpr std::size_t | parse_line (std::string_view buf, FnT fn) |
|
template<std::size_t N> |
constexpr void | split (std::string_view line, std::string_view delims, Row< N > &row) noexcept |
|
bool | stob (string_view sv, bool dfl) noexcept |
|
double | stod (std::string_view sv, double dfl) noexcept |
|
template<typename ValueT > |
auto & | remove_const (const ValueT &ref) |
|
constexpr bool | isdigit (int c) noexcept |
|
template<typename ValueT >
requires std::unsigned_integral<ValueT> |
constexpr int | dec_digits (ValueT i) noexcept |
|
template<typename ValueT >
requires std::signed_integral<ValueT> |
constexpr int | dec_digits (ValueT i) noexcept |
|
template<typename UIntegerT >
requires std::unsigned_integral<UIntegerT> |
constexpr int | hex_digits (UIntegerT i) noexcept |
|
template<typename ValueT >
requires std::integral<ValueT> || std::same_as<ValueT, double> |
constexpr ValueT | ston (std::string_view sv) noexcept |
|
constexpr std::string_view | bool_to_alpha (bool b) noexcept |
|
template<class... Ts> |
| overloaded (Ts...) -> overloaded< Ts... > |
|
string | get_env (const string &name) |
|
template<typename StreamT >
requires Streamable<StreamT> |
StreamT & | operator<< (StreamT &os, Version ver) |
|
std::size_t | hash_value (toolbox::Version ver) |
|