Flow-IPC 3.0.0
Flow-IPC project: Full implementation reference.
Classes | Namespaces | Typedefs | Functions
native_handle.hpp File Reference
#include "ipc/common.hpp"
#include <boost/scope/unique_resource.hpp>
#include <boost/core/functor.hpp>
#include <ostream>

Go to the source code of this file.

Classes

struct  ipc::util::Native_handle
 A monolayer-thin wrapper around a native handle, a/k/a descriptor a/k/a FD. More...
 

Namespaces

namespace  ipc
 Catch-all namespace for the Flow-IPC project: A library/API in modern C++17 providing high-performance communication between processes.
 
namespace  ipc::util
 Flow-IPC module containing miscellaneous general-use facilities that are ubiquitously used by ~all Flow-IPC modules and/or do not fit into any other Flow-IPC module.
 

Typedefs

using ipc::util::Own_native_handle = boost::scope::unique_resource< Native_handle, Native_handle::Closer, Native_handle >
 A unique_resource wrapper for Native_handle useful to avoid descriptor leaks and double-closing; can be thought of as a unique_ptr<Native_handle> except involves no heap allocation, and nullness is determined by Native_handle::null(). More...
 

Functions

Native_handle ipc::util::disowned_native_handle (Own_native_handle &&src) noexcept
 Returns Native_handle constructed by relieving an existing auto-closing Own_native_handle of its ownership of a particular raw handle and storing it, sans auto-closing protection, in that Native_handle. More...
 
Own_native_handle ipc::util::duped_native_handle (Native_handle src, Error_code *err_code=nullptr)
 Returns Own_native_handle{src.dup(err_code)}: an auto-closing duplicate of src; on error the result is .get().null(). More...
 
constexpr bool ipc::util::operator== (Native_handle val1, Native_handle val2) noexcept
 Returns true if and only if the two Native_handle objects are the same underlying handle. More...
 
constexpr bool ipc::util::operator!= (Native_handle val1, Native_handle val2) noexcept
 Negation of similar ==. More...
 
constexpr bool ipc::util::operator< (Native_handle val1, Native_handle val2) noexcept
 Returns a less-than comparison of two Native_handle objects, with the usual total ordering guarantees. More...
 
size_t ipc::util::hash_value (Native_handle val) noexcept
 Hasher of Native_handle for boost.unordered et al. More...
 
constexpr void ipc::util::swap (Native_handle &val1, Native_handle &val2) noexcept
 Standard swap. More...
 
std::ostream & ipc::util::operator<< (std::ostream &os, const Native_handle &val)
 Prints string representation of the given Native_handle to the given ostream. More...