join 1.0
lightweight network framework library
Loading...
Searching...
No Matches
join Namespace Reference

Namespaces

namespace  details
 

Classes

struct  AddressInfo
 address information. More...
 
struct  AnswerRecord
 answer record. More...
 
class  Arp
 ARP protocol class. More...
 
class  Base64
 base64 encode, decode class. More...
 
class  BasicConsumer
 shared memory consumer. More...
 
class  BasicDatagramSocket
 basic datagram socket class. More...
 
class  BasicEndpoint
 basic endpoint class. More...
 
class  BasicHttpClient
 basic HTTP client. More...
 
struct  BasicHttpContent
 basic HTTP content. More...
 
class  BasicHttpSecureClient
 basic HTTPS client. More...
 
class  BasicHttpSecureServer
 basic HTTPS server. More...
 
class  BasicHttpServer
 basic HTTP server. More...
 
class  BasicHttpWorker
 basic HTTP worker. More...
 
class  BasicInternetEndpoint
 basic internet endpoint class. More...
 
class  BasicLinkLayerEndpoint
 basic link layer endpoint class. More...
 
class  BasicNetlinkEndpoint
 basic netlink endpoint class. More...
 
class  BasicProducer
 shared memory producer. More...
 
class  BasicQueue
 shared memory base class. More...
 
class  BasicSmtpClient
 basic SMTP client. More...
 
class  BasicSmtpSecureClient
 Basic SMTPS client. More...
 
class  BasicSocket
 basic socket class. More...
 
class  BasicSocketStream
 socket stream class. More...
 
class  BasicSocketStreambuf
 socket stream buffer class. More...
 
class  BasicStreamAcceptor
 basic stream acceptor class. More...
 
class  BasicStreamSocket
 basic stream socket class. More...
 
class  BasicStreamView
 basic stream view. More...
 
class  BasicTimer
 base timer class. More...
 
class  BasicTlsAcceptor
 basic TLS acceptor class. More...
 
class  BasicTlsSocket
 basic TLS socket class. More...
 
class  BasicTlsStream
 TLS stream class. More...
 
class  BasicUnixEndpoint
 basic unix endpoint class. More...
 
struct  BigNumDelete
 custom functor for BIGNUM deletion. More...
 
class  BufferingView
 buffering view adapter More...
 
class  BufferingView< ViewType, false >
 buffering view specialization for non-seekable view. More...
 
class  BufferingView< ViewType, true >
 buffering view specialization for seekable view. More...
 
class  Cache
 File cache. More...
 
class  Chunkstream
 chunk stream. More...
 
class  Chunkstreambuf
 chunk stream buffer. More...
 
class  Condition
 condition variable class. More...
 
class  Decoder
 decoder. More...
 
class  Decoderbuf
 decoder stream buffer. More...
 
struct  DhKeyDelete
 Custom functor for DH key deletion. More...
 
class  Digest
 digest stream. More...
 
class  Digestbuf
 digest stream buffer. More...
 
class  DigestCategory
 digest error category. More...
 
class  DiyFp
 hand made floating point. More...
 
struct  DnsPacket
 DNS packet. More...
 
struct  EcdhKeyDelete
 Custom functor for ECDH key deletion. More...
 
struct  EcdsaSigDelete
 custom functor for ECDSA_SIG deletion. More...
 
class  Encoder
 encoder. More...
 
class  Encoderbuf
 encoder stream buffer. More...
 
class  ErrorCategory
 Error category. More...
 
class  EventHandler
 Event handler interface class. More...
 
struct  EvpEncodeCtxDelete
 custom functor for EVP_ENCODE_CTX deletion. More...
 
struct  EvpMdCtxDelete
 custom functor for EVP_MD_CTX deletion. More...
 
struct  EvpPkeyCtxDelete
 custom functor for EVP_PKEY_CTX deletion. More...
 
struct  EvpPkeyDelete
 custom functor for EVP_PKEY deletion. More...
 
struct  find_element
 get element type in a parameter pack according its position. More...
 
struct  find_element< 0, T, Ts... >
 get element type in a parameter pack according its position. More...
 
struct  find_element< I, const T >
 get element type in a parameter pack according its position. More...
 
struct  find_element< I, const volatile T >
 get element type in a parameter pack according its position. More...
 
struct  find_element< I, volatile T >
 get element type in a parameter pack according its position. More...
 
struct  find_index
 get element position in a parameter pack according its type. More...
 
struct  find_index< T, First, Ts... >
 get element position in a parameter pack according its type. More...
 
class  Hmac
 HMAC stream. More...
 
class  Hmacbuf
 HMAC stream buffer. More...
 
struct  HmacCtxDelete
 custom functor for HMAC_CTX deletion. More...
 
class  Http
 HTTP protocol class. More...
 
class  HttpCategory
 HTTP API generic error category. More...
 
class  HttpMessage
 HTTP message. More...
 
class  HttpRequest
 HTTP request. More...
 
class  HttpResponse
 HTTP response. More...
 
class  Https
 HTTPS protocol class. More...
 
class  Icmp
 ICMP protocol class. More...
 
struct  identity
 return type unchanged. More...
 
struct  in_place_index_t
 disambiguation tag to indicate that the contained object should be constructed in-place. More...
 
struct  in_place_t
 disambiguation tag to indicate that the contained object should be constructed in-place. More...
 
struct  in_place_type_t
 disambiguation tag to indicate that the contained object should be constructed in-place. More...
 
class  Interface
 interface class. More...
 
class  InterfaceManager
 interface manager class. More...
 
class  Invoker
 thread invoker class. More...
 
class  IpAddress
 IPv6, IPv4 address class. More...
 
class  IpAddressImpl
 IP address implementation interface. More...
 
class  Ipv4Address
 IPv4 address implementation. More...
 
class  Ipv6Address
 IPv6 address implementation. More...
 
struct  is_alternative
 check if a type exists in a parameter pack. More...
 
struct  is_alternative< T, First, Ts... >
 check if a type exists in a parameter pack. More...
 
struct  is_seekable
 trait to determine if a view type is seekable. More...
 
struct  is_seekable< BasicStreamView< true > >
 specialization for seekable view. More...
 
struct  is_seekable< StringView >
 specialization for StringView (seekable). More...
 
class  JsonCanonicalizer
 JSON canonicalizer class. More...
 
class  JsonCategory
 JSON error category. More...
 
class  JsonReader
 JSON reader class. More...
 
class  JsonWriter
 JSON writer class. More...
 
struct  LinkInfo
 link information. More...
 
struct  LocaleDelete
 
class  MacAddress
 MAC address class. More...
 
class  MailMessage
 mail message. More...
 
class  MailRecipient
 mail recipient. More...
 
class  MailSender
 mail sender. More...
 
class  Monotonic
 monotonic clock policy class. More...
 
class  Mpmc
 multiple producer multiple consumer ring buffer policy. More...
 
class  Mpsc
 multiple producer single consumer ring buffer policy. More...
 
class  Mutex
 class used to protect shared data from being simultaneously accessed by multiple threads. More...
 
class  Netlink
 netlink protocol class. More...
 
struct  overload
 overload resolution. More...
 
struct  overload< First, Ts... >
 overload resolution. More...
 
struct  overload< void, Ts... >
 overload resolution. More...
 
struct  overload<>
 overload resolution. More...
 
class  PackReader
 message pack reader class. More...
 
class  PackWriter
 message pack writer class. More...
 
struct  QuestionRecord
 question record. More...
 
class  Raw
 RAW protocol class. More...
 
class  Reactor
 Reactor class. More...
 
class  RealTime
 real time clock policy class. More...
 
class  RecursiveMutex
 class used to protect shared data from being simultaneously accessed by multiple threads. More...
 
class  Resolver
 basic domain name resolution class. More...
 
struct  RouteInfo
 route information. More...
 
class  SaxCategory
 SAX API generic error category. More...
 
class  SaxHandler
 SAX API interface class. More...
 
class  ScopedLock
 class owning a mutex for the duration of a scoped block. More...
 
class  Semaphore
 class used to protect shared data from being simultaneously accessed by multiple threads. More...
 
class  SharedCondition
 condition variable class for shared memory. More...
 
class  SharedMemory
 shared memory class. More...
 
class  SharedMutex
 class used to protect shared data from being simultaneously accessed by multiple process via a shared memory. More...
 
struct  SharedSegment
 shared memory segment. More...
 
class  SharedSemaphore
 class used to protect shared data from being simultaneously accessed by multiple process via a shared memory. More...
 
struct  SharedSync
 synchronization primitives. More...
 
class  Signature
 class used to manage signature. More...
 
class  Signaturebuf
 signature stream buffer. More...
 
class  Smtp
 SMTP protocol class. More...
 
class  Smtps
 SMTPS protocol class. More...
 
class  Spsc
 single producer single consumer ring buffer policy. More...
 
struct  SslCtxDelete
 custom functor for SSL context deletion. More...
 
struct  SslDelete
 custom functor for SSL handle deletion. More...
 
struct  StackOfGeneralNameDelete
 custom functor for STACK_OF(GENERAL_NAME) deletion. More...
 
struct  StackOfX509NameDelete
 Custom functor for STACK_OF(X509_NAME) deletion. More...
 
class  StreambufDecorator
 stream buffer decorator. More...
 
class  StreamReader
 stream deserializer abstract class. More...
 
class  StreamWriter
 stream serializer abstract class. More...
 
class  StringView
 string view. More...
 
class  Tcp
 TCP protocol class. More...
 
class  Thread
 thread class. More...
 
class  ThreadPool
 thread pool class. More...
 
class  Tls
 SSL/TLS protocol class. More...
 
class  TlsCategory
 TLS error category. More...
 
class  TlsKey
 manage private and public keys. More...
 
class  Udp
 UDP protocol class. More...
 
class  UnixDgram
 unix datagram protocol class. More...
 
class  UnixStream
 unix stream protocol class. More...
 
class  Value
 value class. More...
 
class  Variant
 variant class. More...
 
class  WorkerThread
 worker thread class. More...
 
class  Zstream
 zlib stream. More...
 
class  Zstreambuf
 zlib stream buffer. More...
 

Typedefs

using IpAddressList = std::vector <IpAddress>
 List of IP address.
 
using BigNumPtr = std::unique_ptr <BIGNUM, BigNumDelete>
 
using EcdsaSigPtr = std::unique_ptr <ECDSA_SIG, EcdsaSigDelete>
 
using EvpPkeyPtr = std::unique_ptr <EVP_PKEY, EvpPkeyDelete>
 
using EvpPkeyCtxPtr = std::unique_ptr <EVP_PKEY_CTX, EvpPkeyCtxDelete>
 
using EvpEncodeCtxPtr = std::unique_ptr <EVP_ENCODE_CTX, EvpEncodeCtxDelete>
 
using EvpMdCtxPtr = std::unique_ptr <EVP_MD_CTX, EvpMdCtxDelete>
 
using HmacCtxPtr = std::unique_ptr <HMAC_CTX, HmacCtxDelete>
 
using StackOfX509NamePtr = std::unique_ptr <STACK_OF (X509_NAME), StackOfX509NameDelete>
 
using StackOfGeneralNamePtr = std::unique_ptr <STACK_OF (GENERAL_NAME), StackOfGeneralNameDelete>
 
using SslPtr = std::unique_ptr <SSL, SslDelete>
 
using SslCtxPtr = std::unique_ptr <SSL_CTX, SslCtxDelete>
 
using DhKeyPtr = std::unique_ptr <DH, DhKeyDelete>
 
using EcdhKeyPtr = std::unique_ptr <EC_KEY, EcdhKeyDelete>
 
template<typename T >
using identity_t = typename identity <T>::type
 return type unchanged.
 
template<typename T , typename... Ts>
using match_t = typename std::result_of_t <overload <Ts...> (T)>::type
 find a type that match one of the alternatives of a parameter pack.
 
template<std::size_t I, typename... Ts>
using find_element_t = typename find_element <I, Ts...>::type
 get element type in a parameter pack according its position.
 
using BytesArray = std::vector <uint8_t>
 bytes array.
 
using LocalePtr = std::unique_ptr <std::remove_pointer_t <locale_t>, LocaleDelete>
 
using Array = std::vector <Value>
 array.
 
using Member = std::pair <std::string, Value>
 object member.
 
using Object = std::vector <Member>
 object.
 
using StringStreamView = BasicStreamView <true>
 string stream view (seekable).
 
using FileStreamView = BasicStreamView <true>
 file stream view (seekable).
 
using StreamView = BasicStreamView <false>
 stream view (non-seekable, for pipes/network streams).
 
using InterfaceList = std::set <Interface::Ptr>
 list of interfaces.
 
using AliasList = std::set <std::string>
 list of alias.
 
using ServerList = std::set <std::string>
 list of name servers.
 
using ExchangerList = std::set <std::string>
 list of mail exchangers.
 
using MailRecipients = std::vector <MailRecipient>
 mail recipient list.
 

Enumerations

enum class  Errc {
  InUse = 1 , InvalidParam , ConnectionRefused , ConnectionClosed ,
  TimedOut , PermissionDenied , OutOfMemory , OperationFailed ,
  NotFound , MessageUnknown , MessageTooLong , TemporaryError ,
  UnknownError
}
 Generic error codes. More...
 
enum class  TlsErrc { TlsCloseNotifyAlert = 1 , TlsProtocolError }
 TLS error codes. More...
 
enum class  DigestErrc { InvalidAlgorithm = 1 , InvalidKey , InvalidSignature }
 digest error codes. More...
 
enum class  JsonErrc {
  InvalidComment = 1 , InvalidEscaping , InvalidEncoding , IllegalCharacter ,
  MissingCurlyBracket , MissingSquareBracket , MissingQuote , MissingColon ,
  MissingComma , EndOfFile
}
 JSON error codes. More...
 
enum  JsonReadMode { None = 0 , ParseComments = 1L << 0 , ValidateEncoding = 1L << 1 , StopParsingOnDone = 1L << 2 }
 JSON deserialization mode. More...
 
enum class  SaxErrc { StackOverflow = 1 , InvalidParent , InvalidValue , ExtraData }
 SAX API generic error codes. More...
 
enum  ChangeType {
  Added = 1L << 0 , Deleted = 1L << 1 , Modified = 1L << 2 , AdminStateChanged = 1L << 3 ,
  OperStateChanged = 1L << 4 , MacChanged = 1L << 5 , NameChanged = 1L << 6 , MtuChanged = 1L << 7 ,
  KindChanged = 1L << 8 , MasterChanged = 1L << 9
}
 enumeration of interface change type. More...
 
enum class  HttpErrc {
  BadRequest = 1 , Unauthorized , Forbidden , NotFound ,
  Unsupported , LengthRequired , PayloadTooLarge , UriTooLong ,
  HeaderTooLarge , ServerError , NotImplemented , BadGateway
}
 HTTP API generic error codes. More...
 
enum  HttpMethod {
  Head = 1L << 0 , Get = 1L << 1 , Put = 1L << 2 , Post = 1L << 3 ,
  Delete = 1L << 4
}
 enumeration of HTTP methods. More...
 
enum  HttpContentType { Root , Alias , Exec , Redirect }
 HTTP content Type. More...
 

Functions

template<class Protocol >
bool operator== (const BasicUnixEndpoint< Protocol > &a, const BasicUnixEndpoint< Protocol > &b) noexcept
 compare if endpoints are equal.
 
template<class Protocol >
bool operator!= (const BasicUnixEndpoint< Protocol > &a, const BasicUnixEndpoint< Protocol > &b) noexcept
 compare if endpoints are not equal.
 
template<class Protocol >
bool operator< (const BasicUnixEndpoint< Protocol > &a, const BasicUnixEndpoint< Protocol > &b) noexcept
 compare if endpoint is lower.
 
template<class Protocol >
bool operator> (const BasicUnixEndpoint< Protocol > &a, const BasicUnixEndpoint< Protocol > &b) noexcept
 compare if endpoint is greater.
 
template<class Protocol >
bool operator<= (const BasicUnixEndpoint< Protocol > &a, const BasicUnixEndpoint< Protocol > &b) noexcept
 compare if endpoint is lower or equal.
 
template<class Protocol >
bool operator>= (const BasicUnixEndpoint< Protocol > &a, const BasicUnixEndpoint< Protocol > &b) noexcept
 compare if endpoint is greater or equal.
 
template<class Protocol >
std::ostream & operator<< (std::ostream &os, const BasicUnixEndpoint< Protocol > &endpoint)
 push endpoint representation into a stream.
 
template<class Protocol >
bool operator== (const BasicNetlinkEndpoint< Protocol > &a, const BasicNetlinkEndpoint< Protocol > &b) noexcept
 compare if endpoints are equal.
 
template<class Protocol >
bool operator!= (const BasicNetlinkEndpoint< Protocol > &a, const BasicNetlinkEndpoint< Protocol > &b) noexcept
 compare if endpoints are not equal.
 
template<class Protocol >
bool operator< (const BasicNetlinkEndpoint< Protocol > &a, const BasicNetlinkEndpoint< Protocol > &b) noexcept
 compare if endpoint is lower.
 
template<class Protocol >
bool operator> (const BasicNetlinkEndpoint< Protocol > &a, const BasicNetlinkEndpoint< Protocol > &b) noexcept
 compare if endpoint is greater.
 
template<class Protocol >
bool operator<= (const BasicNetlinkEndpoint< Protocol > &a, const BasicNetlinkEndpoint< Protocol > &b) noexcept
 compare if endpoint is lower or equal.
 
template<class Protocol >
bool operator>= (const BasicNetlinkEndpoint< Protocol > &a, const BasicNetlinkEndpoint< Protocol > &b) noexcept
 compare if endpoint is greater or equal.
 
template<class Protocol >
std::ostream & operator<< (std::ostream &os, const BasicNetlinkEndpoint< Protocol > &endpoint)
 push endpoint representation into a stream.
 
template<class Protocol >
bool operator== (const BasicLinkLayerEndpoint< Protocol > &a, const BasicLinkLayerEndpoint< Protocol > &b) noexcept
 compare if endpoints are equal.
 
template<class Protocol >
bool operator!= (const BasicLinkLayerEndpoint< Protocol > &a, const BasicLinkLayerEndpoint< Protocol > &b) noexcept
 compare if endpoints are not equal.
 
template<class Protocol >
bool operator< (const BasicLinkLayerEndpoint< Protocol > &a, const BasicLinkLayerEndpoint< Protocol > &b) noexcept
 compare if endpoint is lower.
 
template<class Protocol >
bool operator> (const BasicLinkLayerEndpoint< Protocol > &a, const BasicLinkLayerEndpoint< Protocol > &b) noexcept
 compare if endpoint is greater.
 
template<class Protocol >
bool operator<= (const BasicLinkLayerEndpoint< Protocol > &a, const BasicLinkLayerEndpoint< Protocol > &b) noexcept
 compare if endpoint is lower or equal.
 
template<class Protocol >
bool operator>= (const BasicLinkLayerEndpoint< Protocol > &a, const BasicLinkLayerEndpoint< Protocol > &b) noexcept
 compare if endpoint is greater or equal.
 
template<class Protocol >
std::ostream & operator<< (std::ostream &os, const BasicLinkLayerEndpoint< Protocol > &endpoint)
 push endpoint representation into a stream.
 
template<class Protocol >
bool operator== (const BasicInternetEndpoint< Protocol > &a, const BasicInternetEndpoint< Protocol > &b) noexcept
 compare if equal.
 
template<class Protocol >
bool operator!= (const BasicInternetEndpoint< Protocol > &a, const BasicInternetEndpoint< Protocol > &b) noexcept
 compare if not equal.
 
template<class Protocol >
bool operator< (const BasicInternetEndpoint< Protocol > &a, const BasicInternetEndpoint< Protocol > &b) noexcept
 compare if lower.
 
template<class Protocol >
bool operator> (const BasicInternetEndpoint< Protocol > &a, const BasicInternetEndpoint< Protocol > &b) noexcept
 compare if greater.
 
template<class Protocol >
bool operator<= (const BasicInternetEndpoint< Protocol > &a, const BasicInternetEndpoint< Protocol > &b) noexcept
 compare if lower or equal.
 
template<class Protocol >
bool operator>= (const BasicInternetEndpoint< Protocol > &a, const BasicInternetEndpoint< Protocol > &b) noexcept
 compare if greater or equal.
 
template<class Protocol >
std::ostream & operator<< (std::ostream &os, const BasicInternetEndpoint< Protocol > &endpoint)
 push endpoint representation into a stream.
 
const std::error_category & getErrorCategory ()
 Get error category.
 
std::error_code make_error_code (join::Errc code)
 Create an std::error_code object.
 
std::error_condition make_error_condition (join::Errc code)
 Create an std::error_condition object.
 
__inline__ std::string base (const std::string &filepath)
 get base path of the specified file.
 
__inline__ std::string filename (const std::string &filepath)
 get file name of the specified file.
 
__inline__ std::string extension (const std::string &filepath)
 get extension of the file specified.
 
__inline__ std::string mime (const std::string &filepath)
 get mime type of the specified file.
 
bool operator== (const IpAddress &a, const IpAddress &b)
 compare if two IP address are equals.
 
bool operator!= (const IpAddress &a, const IpAddress &b)
 compare if two IP address are different.
 
bool operator< (const IpAddress &a, const IpAddress &b)
 compare if IP address is inferior.
 
bool operator<= (const IpAddress &a, const IpAddress &b)
 compare if IP address is inferior or equal.
 
bool operator> (const IpAddress &a, const IpAddress &b)
 compare if IP address is superior.
 
bool operator>= (const IpAddress &a, const IpAddress &b)
 compare if IP address is superior or equal.
 
IpAddress operator& (const IpAddress &a, const IpAddress &b)
 perform AND operation on IP address.
 
IpAddress operator| (const IpAddress &a, const IpAddress &b)
 perform OR operation on IP address.
 
IpAddress operator^ (const IpAddress &a, const IpAddress &b)
 perform XOR operation on IP address.
 
std::ostream & operator<< (std::ostream &out, const IpAddress &address)
 insert address into stream.
 
MacAddress operator+ (int value, const MacAddress &a)
 add the provided value to the provided MAC address.
 
MacAddress operator+ (const MacAddress &a, int value)
 add the provided value to the provided MAC address.
 
bool operator== (const MacAddress &a, const MacAddress &b)
 compare if two MAC address are equals.
 
bool operator!= (const MacAddress &a, const MacAddress &b)
 compare if two MAC address are different.
 
bool operator< (const MacAddress &a, const MacAddress &b)
 compare if MAC address is inferior.
 
bool operator<= (const MacAddress &a, const MacAddress &b)
 compare if MAC address is inferior or equal.
 
bool operator> (const MacAddress &a, const MacAddress &b)
 compare if MAC address is superior.
 
bool operator>= (const MacAddress &a, const MacAddress &b)
 compare if MAC address is superior or equal.
 
MacAddress operator& (const MacAddress &a, const MacAddress &b)
 perform AND operation on MAC address.
 
MacAddress operator| (const MacAddress &a, const MacAddress &b)
 perform OR operation on MAC address.
 
MacAddress operator^ (const MacAddress &a, const MacAddress &b)
 perform XOR operation on MAC address.
 
std::ostream & operator<< (std::ostream &out, const MacAddress &a)
 insert MAC address into stream.
 
void initializeOpenSSL ()
 initialize the OpenSSL libraries.
 
constexpr bool operator== (const Netlink &a, const Netlink &b) noexcept
 check if equals.
 
constexpr bool operator!= (const Netlink &a, const Netlink &b) noexcept
 check if not equals.
 
constexpr bool operator== (const Udp &a, const Udp &b) noexcept
 check if equals.
 
constexpr bool operator!= (const Udp &a, const Udp &b) noexcept
 check if not equals.
 
constexpr bool operator== (const Icmp &a, const Icmp &b) noexcept
 check if equal.
 
constexpr bool operator!= (const Icmp &a, const Icmp &b) noexcept
 check if not equal.
 
constexpr bool operator== (const Tcp &a, const Tcp &b) noexcept
 check if equals.
 
constexpr bool operator!= (const Tcp &a, const Tcp &b) noexcept
 check if not equals.
 
constexpr bool operator== (const Tls &a, const Tls &b) noexcept
 check if equals.
 
constexpr bool operator!= (const Tls &a, const Tls &b) noexcept
 check if not equals.
 
constexpr bool operator== (const Http &a, const Http &b) noexcept
 check if equals.
 
constexpr bool operator!= (const Http &a, const Http &b) noexcept
 check if not equals.
 
constexpr bool operator== (const Https &a, const Https &b) noexcept
 check if equals.
 
constexpr bool operator!= (const Https &a, const Https &b) noexcept
 check if not equals.
 
constexpr bool operator== (const Smtp &a, const Smtp &b) noexcept
 check if equals.
 
constexpr bool operator!= (const Smtp &a, const Smtp &b) noexcept
 check if not equals.
 
constexpr bool operator== (const Smtps &a, const Smtps &b) noexcept
 check if equals.
 
constexpr bool operator!= (const Smtps &a, const Smtps &b) noexcept
 check if not equals.
 
template<class Protocol >
constexpr bool operator< (const BasicSocket< Protocol > &a, const BasicSocket< Protocol > &b) noexcept
 compare if handle is inferior.
 
template<class Protocol >
constexpr bool operator< (const BasicDatagramSocket< Protocol > &a, const BasicDatagramSocket< Protocol > &b) noexcept
 compare if socket handle is inferior.
 
template<class Protocol >
constexpr bool operator< (const BasicStreamSocket< Protocol > &a, const BasicStreamSocket< Protocol > &b) noexcept
 compare if socket handle is inferior.
 
const std::error_category & getTlsCategory ()
 get error category.
 
std::error_code make_error_code (TlsErrc code)
 create an std::error_code object.
 
std::error_condition make_error_condition (TlsErrc code)
 create an std::error_condition object.
 
template<class Protocol >
constexpr bool operator< (const BasicTlsSocket< Protocol > &a, const BasicTlsSocket< Protocol > &b) noexcept
 compare if socket handle is inferior.
 
template<class InputIt , class Func >
void distribute (InputIt first, InputIt last, Func function)
 determine the number of threads and tasks per thread to run and execute them in parallel.
 
template<class InputIt , class Func >
void parallelForEach (InputIt first, InputIt last, Func function)
 parrallel for each loop.
 
template<class Type >
__inline__ Type & swap (Type &val)
 swaps byte orders.
 
__inline__ bool compareNoCase (const std::string &a, const std::string &b)
 case insensitive string comparison.
 
__inline__ std::string & trimLeft (std::string &s)
 trim left.
 
__inline__ std::string & trimRight (std::string &s)
 trim right.
 
__inline__ std::string & trim (std::string &s)
 trim.
 
__inline__ std::string & replaceAll (std::string &str, const std::string &toReplace, const std::string &by)
 replace all occurrences of a substring.
 
__inline__ std::vector< std::string > split (const std::string &in, const std::string &delim)
 split a string using a delimiter.
 
__inline__ std::vector< std::string > rsplit (const std::string &in, const std::string &delim)
 split a string in reverse order using a delimiter.
 
__inline__ bool getline (std::istream &in, std::string &line, std::streamsize max=1024)
 read line (delimiter "\r\n").
 
__inline__ bool getline (std::streambuf &in, std::string &line, std::streamsize max=1024)
 read line (delimiter "\r\n").
 
__inline__ void dump (const void *data, unsigned long size, std::ostream &out=std::cout)
 dump data to standard output stream.
 
template<typename Type >
std::enable_if_t< std::numeric_limits< Type >::is_integer, Type > randomize ()
 create a random number.
 
template<class Func , class... Args>
std::chrono::milliseconds benchmark (Func &&func, Args &&... args)
 benchmark function call.
 
template<typename Clock , typename Duration >
struct timespec toTimespec (std::chrono::time_point< Clock, Duration > timePoint)
 converts time_point to timespec.
 
template<typename... Ts>
constexpr bool operator== (const Variant< Ts... > &lhs, const Variant< Ts... > &rhs)
 compare if equal.
 
template<typename... Ts>
constexpr bool operator!= (const Variant< Ts... > &lhs, const Variant< Ts... > &rhs)
 compare if not equal.
 
template<typename... Ts>
constexpr bool operator< (const Variant< Ts... > &lhs, const Variant< Ts... > &rhs)
 compare if lower than.
 
template<typename... Ts>
constexpr bool operator> (const Variant< Ts... > &lhs, const Variant< Ts... > &rhs)
 compare if greater than.
 
template<typename... Ts>
constexpr bool operator<= (const Variant< Ts... > &lhs, const Variant< Ts... > &rhs)
 compare if lower or equal than.
 
template<typename... Ts>
constexpr bool operator>= (const Variant< Ts... > &lhs, const Variant< Ts... > &rhs)
 compare if greater or equal than.
 
__inline__ std::string bin2hex (const BytesArray &bin)
 convert bytes array to string.
 
const std::error_category & getDigestCategory ()
 get error category.
 
std::error_code make_error_code (DigestErrc code)
 create an std::error_code object.
 
std::error_condition make_error_condition (DigestErrc code)
 create an std::error_condition object.
 
constexpr DiyFp operator- (const DiyFp &lhs, const DiyFp &rhs)
 minus operator
 
constexpr DiyFp operator* (const DiyFp &lhs, const DiyFp &rhs)
 multiplication operator.
 
char * dtoa (char *buffer, double value)
 double to string conversion.
 
const std::error_category & jsonCategory () noexcept
 get error category.
 
std::error_code make_error_code (JsonErrc code) noexcept
 create an std::error_code object.
 
std::error_condition make_error_condition (JsonErrc code) noexcept
 create an std::error_condition object.
 
constexpr JsonReadMode operator& (JsonReadMode a, JsonReadMode b) noexcept
 perform binary AND on JsonReadMode.
 
constexpr JsonReadMode operator| (JsonReadMode a, JsonReadMode b) noexcept
 perform binary OR on JsonReadMode.
 
constexpr const JsonReadModeoperator&= (JsonReadMode &a, JsonReadMode b) noexcept
 perform binary AND on JsonReadMode.
 
constexpr const JsonReadModeoperator|= (JsonReadMode &a, JsonReadMode b) noexcept
 perform binary OR on JsonReadMode.
 
const std::error_category & saxCategory () noexcept
 get error category.
 
std::error_code make_error_code (SaxErrc code) noexcept
 create an std::error_code object.
 
std::error_condition make_error_condition (SaxErrc code) noexcept
 create an std::error_condition object.
 
constexpr bool operator== (const Value &lhs, const Value &rhs)
 compare if equal.
 
constexpr bool operator!= (const Value &lhs, const Value &rhs)
 compare if not equal.
 
constexpr bool operator< (const Value &lhs, const Value &rhs)
 compare if lower than.
 
constexpr bool operator> (const Value &lhs, const Value &rhs)
 compare if greater than.
 
constexpr bool operator<= (const Value &lhs, const Value &rhs)
 compare if lower or equal than.
 
constexpr bool operator>= (const Value &lhs, const Value &rhs)
 compare if greater or equal than.
 
bool operator== (const Interface::Ptr &lhs, const Interface::Ptr &rhs)
 compare if two interfaces are equals.
 
bool operator< (const Interface::Ptr &lhs, const Interface::Ptr &rhs)
 compare if interface is inferior.
 
__inline__ ChangeType operator& (ChangeType __a, ChangeType __b)
 perform binary AND on ChangeType.
 
__inline__ ChangeType operator| (ChangeType __a, ChangeType __b)
 perform binary OR on ChangeType.
 
__inline__ ChangeType operator^ (ChangeType __a, ChangeType __b)
 perform binary XOR on ChangeType.
 
__inline__ ChangeType operator~ (ChangeType __a)
 perform binary NOT on ChangeType.
 
__inline__ const ChangeTypeoperator&= (ChangeType &__a, ChangeType __b)
 perform binary AND on ChangeType.
 
__inline__ const ChangeTypeoperator|= (ChangeType &__a, ChangeType __b)
 perform binary OR on ChangeType.
 
__inline__ const ChangeTypeoperator^= (ChangeType &__a, ChangeType __b)
 perform binary XOR on ChangeType.
 
template<class Protocol >
constexpr BasicHttpClient< Protocol > & operator<< (BasicHttpClient< Protocol > &out, HttpRequest &request)
 write HTTP request to the HTTP stream.
 
template<class Protocol >
constexpr BasicHttpClient< Protocol > & operator>> (BasicHttpClient< Protocol > &in, HttpResponse &response)
 read HTTP response from the HTTP stream.
 
template<class Protocol >
constexpr BasicHttpSecureClient< Protocol > & operator<< (BasicHttpSecureClient< Protocol > &out, HttpRequest &request)
 write request to the HTTPS stream.
 
template<class Protocol >
constexpr BasicHttpSecureClient< Protocol > & operator>> (BasicHttpSecureClient< Protocol > &in, HttpResponse &response)
 read response from the HTTPS stream.
 
const std::error_category & httpCategory ()
 get error category.
 
std::error_code make_error_code (HttpErrc code)
 create an std::error_code object.
 
std::error_condition make_error_condition (HttpErrc code)
 create an std::error_condition object.
 
__inline__ HttpMethod operator& (HttpMethod __a, HttpMethod __b)
 perform binary AND on HttpMethod.
 
__inline__ HttpMethod operator| (HttpMethod __a, HttpMethod __b)
 perform binary OR on HttpMethod.
 
__inline__ HttpMethod operator^ (HttpMethod __a, HttpMethod __b)
 perform binary XOR on HttpMethod.
 
__inline__ HttpMethod operator~ (HttpMethod __a)
 perform binary NOT on HttpMethod.
 
__inline__ const HttpMethodoperator&= (HttpMethod &__a, HttpMethod __b)
 perform binary AND on HttpMethod.
 
__inline__ const HttpMethodoperator|= (HttpMethod &__a, HttpMethod __b)
 perform binary OR on HttpMethod.
 
__inline__ const HttpMethodoperator^= (HttpMethod &__a, HttpMethod __b)
 perform binary XOR on HttpMethod.
 
std::ostream & operator<< (std::ostream &out, const MailSender &sender)
 insert mail sender into stream.
 

Variables

thread_local std::error_code lastError
 last error.
 
const std::string defaultCipher
 
const std::string defaultCipher_1_3
 

Detailed Description

MIT License

Copyright (c) 2021 Mathieu Rabine

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

MIT License

Copyright (c) 2023 Mathieu Rabine

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

MIT License

Copyright (c) 2022 Mathieu Rabine

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

MIT License

Copyright (c) 2025 Mathieu Rabine

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

MIT License

Copyright (c) 2025 Mathieu Rabine

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Typedef Documentation

◆ AliasList

using join::AliasList = std::set <std::string>

list of alias.

◆ Array

using join::Array = std::vector <Value>

array.

◆ BigNumPtr

using join::BigNumPtr = std::unique_ptr <BIGNUM, BigNumDelete>

◆ BytesArray

using join::BytesArray = std::vector <uint8_t>

bytes array.

◆ DhKeyPtr

using join::DhKeyPtr = std::unique_ptr <DH, DhKeyDelete>

◆ EcdhKeyPtr

using join::EcdhKeyPtr = std::unique_ptr <EC_KEY, EcdhKeyDelete>

◆ EcdsaSigPtr

using join::EcdsaSigPtr = std::unique_ptr <ECDSA_SIG, EcdsaSigDelete>

◆ EvpEncodeCtxPtr

using join::EvpEncodeCtxPtr = std::unique_ptr <EVP_ENCODE_CTX, EvpEncodeCtxDelete>

◆ EvpMdCtxPtr

using join::EvpMdCtxPtr = std::unique_ptr <EVP_MD_CTX, EvpMdCtxDelete>

◆ EvpPkeyCtxPtr

using join::EvpPkeyCtxPtr = std::unique_ptr <EVP_PKEY_CTX, EvpPkeyCtxDelete>

◆ EvpPkeyPtr

using join::EvpPkeyPtr = std::unique_ptr <EVP_PKEY, EvpPkeyDelete>

◆ ExchangerList

using join::ExchangerList = std::set <std::string>

list of mail exchangers.

◆ FileStreamView

file stream view (seekable).

◆ find_element_t

template<std::size_t I, typename... Ts>
using join::find_element_t = typename find_element <I, Ts...>::type

get element type in a parameter pack according its position.

◆ HmacCtxPtr

using join::HmacCtxPtr = std::unique_ptr <HMAC_CTX, HmacCtxDelete>

◆ identity_t

template<typename T >
using join::identity_t = typename identity <T>::type

return type unchanged.

◆ InterfaceList

using join::InterfaceList = std::set <Interface::Ptr>

list of interfaces.

◆ IpAddressList

using join::IpAddressList = std::vector <IpAddress>

List of IP address.

◆ LocalePtr

using join::LocalePtr = std::unique_ptr <std::remove_pointer_t <locale_t>, LocaleDelete>

◆ MailRecipients

using join::MailRecipients = std::vector <MailRecipient>

mail recipient list.

◆ match_t

template<typename T , typename... Ts>
using join::match_t = typename std::result_of_t <overload <Ts...> (T)>::type

find a type that match one of the alternatives of a parameter pack.

◆ Member

using join::Member = std::pair <std::string, Value>

object member.

◆ Object

using join::Object = std::vector <Member>

object.

◆ ServerList

using join::ServerList = std::set <std::string>

list of name servers.

◆ SslCtxPtr

using join::SslCtxPtr = std::unique_ptr <SSL_CTX, SslCtxDelete>

◆ SslPtr

using join::SslPtr = std::unique_ptr <SSL, SslDelete>

◆ StackOfGeneralNamePtr

using join::StackOfGeneralNamePtr = std::unique_ptr <STACK_OF (GENERAL_NAME), StackOfGeneralNameDelete>

◆ StackOfX509NamePtr

using join::StackOfX509NamePtr = std::unique_ptr <STACK_OF (X509_NAME), StackOfX509NameDelete>

◆ StreamView

stream view (non-seekable, for pipes/network streams).

◆ StringStreamView

string stream view (seekable).

Enumeration Type Documentation

◆ ChangeType

enumeration of interface change type.

Enumerator
Added 
Deleted 
Modified 
AdminStateChanged 
OperStateChanged 
MacChanged 
NameChanged 
MtuChanged 
KindChanged 
MasterChanged 

◆ DigestErrc

enum class join::DigestErrc
strong

digest error codes.

Enumerator
InvalidAlgorithm 

invalid algorithm.

InvalidKey 

invalid key.

InvalidSignature 

invalid signature.

◆ Errc

enum class join::Errc
strong

Generic error codes.

Enumerator
InUse 

Already in use.

InvalidParam 

Invalid parameters were used.

ConnectionRefused 

The connection was refused.

ConnectionClosed 

The connection was closed by the peer.

TimedOut 

The operation timed out.

PermissionDenied 

The operation was not permitted.

OutOfMemory 

The operation run out of memory.

OperationFailed 

The operation failed.

NotFound 

Resource not found.

MessageUnknown 

Message unknown.

MessageTooLong 

Message too long.

TemporaryError 

A temporary error occurred, operation should be performed again later.

UnknownError 

An unknown error occurred.

◆ HttpContentType

HTTP content Type.

Enumerator
Root 

Content appended to root directory.

Alias 

Content replaced by alias.

Exec 

Executable content.

Redirect 

Redirection.

◆ HttpErrc

enum class join::HttpErrc
strong

HTTP API generic error codes.

Enumerator
BadRequest 

malformed request syntax.

Unauthorized 

authentication is required.

Forbidden 

missing required permissions.

NotFound 

resource could not be found.

Unsupported 

method is not supported.

LengthRequired 

length was not specified.

PayloadTooLarge 

request payload is too large.

UriTooLong 

request URI is too long.

HeaderTooLarge 

request header is too large.

ServerError 

generic error.

NotImplemented 

not implemented.

BadGateway 

invalid response from the upstream server.

◆ HttpMethod

enumeration of HTTP methods.

Enumerator
Head 

retrieve informations identified by the Request-URI without message-body.

Get 

retrieve informations identified by the Request-URI.

Put 

request that the enclosed entity be stored under the supplied Request-URI.

Post 

request that the enclosed entity is accepted as a new subordinate of the resource identified by the Request-URI.

Delete 

request that the server delete the resource identified by the Request-URI.

◆ JsonErrc

enum class join::JsonErrc
strong

JSON error codes.

Enumerator
InvalidComment 

comment is invalid.

InvalidEscaping 

character escaping is invalid.

InvalidEncoding 

character encoding is invalid.

IllegalCharacter 

illegal character.

MissingCurlyBracket 

missing curly bracket.

MissingSquareBracket 

missing square bracket.

MissingQuote 

missing quote.

MissingColon 

missing colon.

MissingComma 

missing comma.

EndOfFile 

end of file.

◆ JsonReadMode

JSON deserialization mode.

Enumerator
None 

no read mode set.

ParseComments 

parse comments.

ValidateEncoding 

validate encoding.

StopParsingOnDone 

stop parsing on done.

◆ SaxErrc

enum class join::SaxErrc
strong

SAX API generic error codes.

Enumerator
StackOverflow 

Stack overflow.

InvalidParent 

Parent not an array nor an object.

InvalidValue 

Value is invalid.

ExtraData 

Extra data detected.

◆ TlsErrc

enum class join::TlsErrc
strong

TLS error codes.

Enumerator
TlsCloseNotifyAlert 

A close notify alert was received.

TlsProtocolError 

A failure in the TLS library occurred, usually a protocol error.

Function Documentation

◆ base()

__inline__ std::string join::base ( const std::string & filepath)

get base path of the specified file.

Parameters
filepathpath to parse.
Returns
base path of the specified file.

◆ benchmark()

template<class Func , class... Args>
std::chrono::milliseconds join::benchmark ( Func && func,
Args &&... args )

benchmark function call.

Parameters
functionfunction to benchmark.
argumentsfunction arguments.
Returns
time elapsed in milliseconds.

◆ bin2hex()

__inline__ std::string join::bin2hex ( const BytesArray & bin)

convert bytes array to string.

Parameters
binbytes array.
Returns
converted bytes array string.

◆ compareNoCase()

__inline__ bool join::compareNoCase ( const std::string & a,
const std::string & b )

case insensitive string comparison.

Parameters
astring to compare.
bstring to compare to.
Returns
true if equals, false otharwise.

◆ distribute()

template<class InputIt , class Func >
void join::distribute ( InputIt first,
InputIt last,
Func function )

determine the number of threads and tasks per thread to run and execute them in parallel.

Parameters
firstfirst iterator.
lastlast iterator.
functionfunction to execute in parallel.

◆ dtoa()

char * join::dtoa ( char * buffer,
double value )
inline

double to string conversion.

Parameters
bufferbuffer to write the string representation to.
valuevalue to convert.
Returns
end position.

◆ dump()

__inline__ void join::dump ( const void * data,
unsigned long size,
std::ostream & out = std::cout )

dump data to standard output stream.

Parameters
datadata to dump.
sizenumber of data bytes.

◆ extension()

__inline__ std::string join::extension ( const std::string & filepath)

get extension of the file specified.

Parameters
filepathpath to parse.
Returns
The extension of the specified file.

◆ filename()

__inline__ std::string join::filename ( const std::string & filepath)

get file name of the specified file.

Parameters
filepathpath to parse.
Returns
The file name of the specified file.

◆ getDigestCategory()

const std::error_category & join::getDigestCategory ( )

get error category.

Returns
the created std::error_category object.

◆ getErrorCategory()

const std::error_category & join::getErrorCategory ( )

Get error category.

Returns
the created std::error_category object.

◆ getline() [1/2]

__inline__ bool join::getline ( std::istream & in,
std::string & line,
std::streamsize max = 1024 )

read line (delimiter "\r\n").

Parameters
ininput stream.
lineline read.
maxmax characters to read.
Returns
true on success, false on error.

◆ getline() [2/2]

__inline__ bool join::getline ( std::streambuf & in,
std::string & line,
std::streamsize max = 1024 )

read line (delimiter "\r\n").

Parameters
ininput stream buffer.
lineline read.
maxmax characters to read.
Returns
true on success, false on error.

◆ getTlsCategory()

const std::error_category & join::getTlsCategory ( )

get error category.

Returns
the created std::error_category object.

◆ httpCategory()

const std::error_category & join::httpCategory ( )

get error category.

Returns
the created std::error_category object.

◆ initializeOpenSSL()

void join::initializeOpenSSL ( )

initialize the OpenSSL libraries.

Note
the OpenSSL library should be initialized only once and at the early beginning of the process. this function will ensure that the libraries initialization can't be done multiple times even if called in multiple places.

◆ jsonCategory()

const std::error_category & join::jsonCategory ( )
noexcept

get error category.

Returns
the created std::error_category object.

◆ make_error_code() [1/6]

std::error_code join::make_error_code ( DigestErrc code)

create an std::error_code object.

Parameters
codeerror code number.
Returns
the created std::error_code object.

◆ make_error_code() [2/6]

std::error_code join::make_error_code ( HttpErrc code)

create an std::error_code object.

Parameters
codeerror code number.
Returns
the created std::error_code object.

◆ make_error_code() [3/6]

std::error_code join::make_error_code ( join::Errc code)

Create an std::error_code object.

Parameters
codeError code number.
Returns
The created std::error_code object.

◆ make_error_code() [4/6]

std::error_code join::make_error_code ( JsonErrc code)
noexcept

create an std::error_code object.

Parameters
codeerror code number.
Returns
the created std::error_code object.

◆ make_error_code() [5/6]

std::error_code join::make_error_code ( SaxErrc code)
noexcept

create an std::error_code object.

Parameters
codeerror code number.
Returns
the created std::error_code object.

◆ make_error_code() [6/6]

std::error_code join::make_error_code ( TlsErrc code)

create an std::error_code object.

Parameters
codeerror code number.
Returns
the created std::error_code object.

◆ make_error_condition() [1/6]

std::error_condition join::make_error_condition ( DigestErrc code)

create an std::error_condition object.

Parameters
codeerror code number.
Returns
the created std::error_condition object.

◆ make_error_condition() [2/6]

std::error_condition join::make_error_condition ( HttpErrc code)

create an std::error_condition object.

Parameters
codeerror code number.
Returns
the created std::error_condition object.

◆ make_error_condition() [3/6]

std::error_condition join::make_error_condition ( join::Errc code)

Create an std::error_condition object.

Parameters
codeError code number.
Returns
The created std::error_condition object.

◆ make_error_condition() [4/6]

std::error_condition join::make_error_condition ( JsonErrc code)
noexcept

create an std::error_condition object.

Parameters
codeerror code number.
Returns
the created std::error_condition object.

◆ make_error_condition() [5/6]

std::error_condition join::make_error_condition ( SaxErrc code)
noexcept

create an std::error_condition object.

Parameters
codeerror code number.
Returns
the created std::error_condition object.

◆ make_error_condition() [6/6]

std::error_condition join::make_error_condition ( TlsErrc code)

create an std::error_condition object.

Parameters
codeerror code number.
Returns
the created std::error_condition object.

◆ mime()

__inline__ std::string join::mime ( const std::string & filepath)

get mime type of the specified file.

Parameters
filepathpath to parse.
Returns
mime type of the specified file.

◆ operator!=() [1/17]

template<class Protocol >
bool join::operator!= ( const BasicInternetEndpoint< Protocol > & a,
const BasicInternetEndpoint< Protocol > & b )
noexcept

compare if not equal.

Parameters
aendpoint to compare.
bendpoint to compare to.
Returns
true if endpoints is not equal, false otherwise.

◆ operator!=() [2/17]

template<class Protocol >
bool join::operator!= ( const BasicLinkLayerEndpoint< Protocol > & a,
const BasicLinkLayerEndpoint< Protocol > & b )
noexcept

compare if endpoints are not equal.

Parameters
aendpoint to compare.
bendpoint to compare to.
Returns
true if endpoints are not equal, false otherwise.

◆ operator!=() [3/17]

template<class Protocol >
bool join::operator!= ( const BasicNetlinkEndpoint< Protocol > & a,
const BasicNetlinkEndpoint< Protocol > & b )
noexcept

compare if endpoints are not equal.

Parameters
aendpoint to compare.
bendpoint to compare to.
Returns
true if endpoints are not equal, false otherwise.

◆ operator!=() [4/17]

template<class Protocol >
bool join::operator!= ( const BasicUnixEndpoint< Protocol > & a,
const BasicUnixEndpoint< Protocol > & b )
noexcept

compare if endpoints are not equal.

Parameters
aendpoint to compare.
bendpoint to compare to.
Returns
true if endpoints are not equal, false otherwise.

◆ operator!=() [5/17]

bool join::operator!= ( const Http & a,
const Http & b )
constexprnoexcept

check if not equals.

Parameters
aprotocol to check.
bprotocol to check.
Returns
true if not equals.

◆ operator!=() [6/17]

bool join::operator!= ( const Https & a,
const Https & b )
constexprnoexcept

check if not equals.

Parameters
aprotocol to check.
bprotocol to check.
Returns
true if not equals.

◆ operator!=() [7/17]

bool join::operator!= ( const Icmp & a,
const Icmp & b )
constexprnoexcept

check if not equal.

Parameters
aprotocol to compare.
bprotocol to compare to.
Returns
true if not equal.

◆ operator!=() [8/17]

bool join::operator!= ( const IpAddress & a,
const IpAddress & b )

compare if two IP address are different.

Parameters
aaddress to compare.
baddress to compare to.
Returns
true if different.

◆ operator!=() [9/17]

bool join::operator!= ( const MacAddress & a,
const MacAddress & b )

compare if two MAC address are different.

Parameters
aMAC address to compare.
bMAC address to compare to.
Returns
true if different.

◆ operator!=() [10/17]

bool join::operator!= ( const Netlink & a,
const Netlink & b )
constexprnoexcept

check if not equals.

Parameters
aprotocol to check.
bprotocol to check.
Returns
true if not equals.

◆ operator!=() [11/17]

bool join::operator!= ( const Smtp & a,
const Smtp & b )
constexprnoexcept

check if not equals.

Parameters
aprotocol to check.
bprotocol to check.
Returns
true if not equals.

◆ operator!=() [12/17]

bool join::operator!= ( const Smtps & a,
const Smtps & b )
constexprnoexcept

check if not equals.

Parameters
aprotocol to check.
bprotocol to check.
Returns
true if not equals.

◆ operator!=() [13/17]

bool join::operator!= ( const Tcp & a,
const Tcp & b )
constexprnoexcept

check if not equals.

Parameters
aprotocol to check.
bprotocol to check.
Returns
true if not equals.

◆ operator!=() [14/17]

bool join::operator!= ( const Tls & a,
const Tls & b )
constexprnoexcept

check if not equals.

Parameters
aprotocol to check.
bprotocol to check.
Returns
true if not equals.

◆ operator!=() [15/17]

bool join::operator!= ( const Udp & a,
const Udp & b )
constexprnoexcept

check if not equals.

Parameters
aprotocol to check.
bprotocol to check.
Returns
true if not equals.

◆ operator!=() [16/17]

bool join::operator!= ( const Value & lhs,
const Value & rhs )
constexpr

compare if not equal.

Parameters
lhsvalue to compare.
rhsvalue to compare to.
Returns
true if not equal.

◆ operator!=() [17/17]

template<typename... Ts>
bool join::operator!= ( const Variant< Ts... > & lhs,
const Variant< Ts... > & rhs )
constexpr

compare if not equal.

Parameters
lhsvalue to compare.
rhsvalue to compare to.
Returns
true if not equal.

◆ operator&() [1/5]

__inline__ ChangeType join::operator& ( ChangeType __a,
ChangeType __b )

perform binary AND on ChangeType.

Parameters
__abitset.
__bother bitset.
Returns
bitset result of binary AND on ChangeType.

◆ operator&() [2/5]

IpAddress join::operator& ( const IpAddress & a,
const IpAddress & b )

perform AND operation on IP address.

Parameters
aaddress to compare.
baddress to compare to.
Returns
result of AND operation on IpAddress.

◆ operator&() [3/5]

MacAddress join::operator& ( const MacAddress & a,
const MacAddress & b )

perform AND operation on MAC address.

Parameters
aMAC address to compare.
bMAC address to compare to.
Returns
result of AND operation on MacAddress.

◆ operator&() [4/5]

__inline__ HttpMethod join::operator& ( HttpMethod __a,
HttpMethod __b )

perform binary AND on HttpMethod.

Parameters
__abitset.
__bother bitset.
Returns
bitset result of binary AND on HttpMethod.

◆ operator&() [5/5]

JsonReadMode join::operator& ( JsonReadMode a,
JsonReadMode b )
constexprnoexcept

perform binary AND on JsonReadMode.

Parameters
abitset.
bother bitset.
Returns
bitset result of binary AND on JsonReadMode.

◆ operator&=() [1/3]

__inline__ const ChangeType & join::operator&= ( ChangeType & __a,
ChangeType __b )

perform binary AND on ChangeType.

Parameters
__abitset.
__bother bitset.
Returns
bitset result of binary AND on ChangeType.

◆ operator&=() [2/3]

__inline__ const HttpMethod & join::operator&= ( HttpMethod & __a,
HttpMethod __b )

perform binary AND on HttpMethod.

Parameters
__abitset.
__bother bitset.
Returns
bitset result of binary AND on HttpMethod.

◆ operator&=() [3/3]

const JsonReadMode & join::operator&= ( JsonReadMode & a,
JsonReadMode b )
constexprnoexcept

perform binary AND on JsonReadMode.

Parameters
abitset.
bother bitset.
Returns
bitset result of binary AND on JsonReadMode.

◆ operator*()

DiyFp join::operator* ( const DiyFp & lhs,
const DiyFp & rhs )
inlineconstexpr

multiplication operator.

Parameters
lhsfloating point.
rhsfloating point.
Returns
a floating point from lhs multiplied by rhs.

◆ operator+() [1/2]

MacAddress join::operator+ ( const MacAddress & a,
int value )

add the provided value to the provided MAC address.

Parameters
aMAC address.
valuevalue to add to MAC address.
Returns
result of the addition operation on MacAddress.

◆ operator+() [2/2]

MacAddress join::operator+ ( int value,
const MacAddress & a )

add the provided value to the provided MAC address.

Parameters
valuevalue to add to MAC address.
aMAC address.
Returns
result of the addition operation on MacAddress.

◆ operator-()

DiyFp join::operator- ( const DiyFp & lhs,
const DiyFp & rhs )
inlineconstexpr

minus operator

Parameters
lhsfloating point.
rhsfloating point.
Returns
a floating point from lhs minus rhs.

◆ operator<() [1/13]

template<class Protocol >
bool join::operator< ( const BasicDatagramSocket< Protocol > & a,
const BasicDatagramSocket< Protocol > & b )
constexprnoexcept

compare if socket handle is inferior.

Parameters
asocket handle to compare.
bsocket handle to compare to.
Returns
true if inferior.

◆ operator<() [2/13]

template<class Protocol >
bool join::operator< ( const BasicInternetEndpoint< Protocol > & a,
const BasicInternetEndpoint< Protocol > & b )
noexcept

compare if lower.

Parameters
aendpoint to compare.
bendpoint to compare to.
Returns
true if lower, false otherwise.

◆ operator<() [3/13]

template<class Protocol >
bool join::operator< ( const BasicLinkLayerEndpoint< Protocol > & a,
const BasicLinkLayerEndpoint< Protocol > & b )
noexcept

compare if endpoint is lower.

Parameters
aendpoint to compare.
bendpoint to compare to.
Returns
true if lower, false otherwise.

◆ operator<() [4/13]

template<class Protocol >
bool join::operator< ( const BasicNetlinkEndpoint< Protocol > & a,
const BasicNetlinkEndpoint< Protocol > & b )
noexcept

compare if endpoint is lower.

Parameters
aendpoint to compare.
bendpoint to compare to.
Returns
true if lower, false otherwise.

◆ operator<() [5/13]

template<class Protocol >
bool join::operator< ( const BasicSocket< Protocol > & a,
const BasicSocket< Protocol > & b )
constexprnoexcept

compare if handle is inferior.

Parameters
asocket handle to compare.
bsocket handle to compare to.
Returns
true if inferior.

◆ operator<() [6/13]

template<class Protocol >
bool join::operator< ( const BasicStreamSocket< Protocol > & a,
const BasicStreamSocket< Protocol > & b )
constexprnoexcept

compare if socket handle is inferior.

Parameters
asocket handle to compare.
bsocket handle to compare to.
Returns
true if inferior.

◆ operator<() [7/13]

template<class Protocol >
bool join::operator< ( const BasicTlsSocket< Protocol > & a,
const BasicTlsSocket< Protocol > & b )
constexprnoexcept

compare if socket handle is inferior.

Parameters
asocket handle to compare.
bsocket handle to compare to.
Returns
true if inferior.

◆ operator<() [8/13]

template<class Protocol >
bool join::operator< ( const BasicUnixEndpoint< Protocol > & a,
const BasicUnixEndpoint< Protocol > & b )
noexcept

compare if endpoint is lower.

Parameters
aendpoint to compare.
bendpoint to compare to.
Returns
true if lower, false otherwise.

◆ operator<() [9/13]

bool join::operator< ( const Interface::Ptr & lhs,
const Interface::Ptr & rhs )
inline

compare if interface is inferior.

Parameters
aInterface to compare.
bInterface to compare to.
Returns
true if inferior.

◆ operator<() [10/13]

bool join::operator< ( const IpAddress & a,
const IpAddress & b )

compare if IP address is inferior.

Parameters
aaddress to compare.
baddress to compare to.
Returns
true if inferior.

◆ operator<() [11/13]

bool join::operator< ( const MacAddress & a,
const MacAddress & b )

compare if MAC address is inferior.

Parameters
aMAC address to compare.
bMAC address to compare to.
Returns
true if inferior.

◆ operator<() [12/13]

bool join::operator< ( const Value & lhs,
const Value & rhs )
constexpr

compare if lower than.

Parameters
lhsvalue to compare.
rhsvalue to compare to.
Returns
true if lower than.

◆ operator<() [13/13]

template<typename... Ts>
bool join::operator< ( const Variant< Ts... > & lhs,
const Variant< Ts... > & rhs )
constexpr

compare if lower than.

Parameters
lhsvalue to compare.
rhsvalue to compare to.
Returns
true if lower than.

◆ operator<<() [1/9]

template<class Protocol >
BasicHttpClient< Protocol > & join::operator<< ( BasicHttpClient< Protocol > & out,
HttpRequest & request )
constexpr

write HTTP request to the HTTP stream.

Parameters
outHTTP output stream.
requestHTTP request.
Returns
a reference to the HTTP output stream.

◆ operator<<() [2/9]

template<class Protocol >
BasicHttpSecureClient< Protocol > & join::operator<< ( BasicHttpSecureClient< Protocol > & out,
HttpRequest & request )
constexpr

write request to the HTTPS stream.

Parameters
outHTTP output stream.
requestrequest.
Returns
a reference to the HTTPS output stream.

◆ operator<<() [3/9]

template<class Protocol >
std::ostream & join::operator<< ( std::ostream & os,
const BasicInternetEndpoint< Protocol > & endpoint )

push endpoint representation into a stream.

Parameters
osoutput stream.
endpointendpoint to push.
Returns
output stream.

◆ operator<<() [4/9]

template<class Protocol >
std::ostream & join::operator<< ( std::ostream & os,
const BasicLinkLayerEndpoint< Protocol > & endpoint )

push endpoint representation into a stream.

Parameters
osoutput stream.
endpointendpoint to push.
Returns
output stream.

◆ operator<<() [5/9]

template<class Protocol >
std::ostream & join::operator<< ( std::ostream & os,
const BasicNetlinkEndpoint< Protocol > & endpoint )

push endpoint representation into a stream.

Parameters
osoutput stream.
endpointendpoint to push.
Returns
output stream.

◆ operator<<() [6/9]

template<class Protocol >
std::ostream & join::operator<< ( std::ostream & os,
const BasicUnixEndpoint< Protocol > & endpoint )

push endpoint representation into a stream.

Parameters
osoutput stream.
endpointendpoint to push.
Returns
output stream.

◆ operator<<() [7/9]

std::ostream & join::operator<< ( std::ostream & out,
const IpAddress & address )

insert address into stream.

Parameters
outoutput stream.
addressIP address.
Returns
a reference to the output stream.

◆ operator<<() [8/9]

std::ostream & join::operator<< ( std::ostream & out,
const MacAddress & a )

insert MAC address into stream.

Parameters
outoutput stream.
aMAC address.
Returns
a reference to the output stream.

◆ operator<<() [9/9]

std::ostream & join::operator<< ( std::ostream & out,
const MailSender & sender )

insert mail sender into stream.

Parameters
outoutput stream.
sendermail sender.
Returns
a reference to the output stream.

◆ operator<=() [1/8]

template<class Protocol >
bool join::operator<= ( const BasicInternetEndpoint< Protocol > & a,
const BasicInternetEndpoint< Protocol > & b )
noexcept

compare if lower or equal.

Parameters
aendpoint to compare.
bendpoint to compare to.
Returns
true if lower or equal, false otherwise.

◆ operator<=() [2/8]

template<class Protocol >
bool join::operator<= ( const BasicLinkLayerEndpoint< Protocol > & a,
const BasicLinkLayerEndpoint< Protocol > & b )
noexcept

compare if endpoint is lower or equal.

Parameters
aendpoint to compare.
bendpoint to compare to.
Returns
true if lower or equal, false otherwise.

◆ operator<=() [3/8]

template<class Protocol >
bool join::operator<= ( const BasicNetlinkEndpoint< Protocol > & a,
const BasicNetlinkEndpoint< Protocol > & b )
noexcept

compare if endpoint is lower or equal.

Parameters
aendpoint to compare.
bendpoint to compare to.
Returns
true if lower or equal, false otherwise.

◆ operator<=() [4/8]

template<class Protocol >
bool join::operator<= ( const BasicUnixEndpoint< Protocol > & a,
const BasicUnixEndpoint< Protocol > & b )
noexcept

compare if endpoint is lower or equal.

Parameters
aendpoint to compare.
bendpoint to compare to.
Returns
true if lower or equal, false otherwise.

◆ operator<=() [5/8]

bool join::operator<= ( const IpAddress & a,
const IpAddress & b )

compare if IP address is inferior or equal.

Parameters
aaddress to compare.
baddress to compare to.
Returns
true if inferior or equal.

◆ operator<=() [6/8]

bool join::operator<= ( const MacAddress & a,
const MacAddress & b )

compare if MAC address is inferior or equal.

Parameters
aMAC address to compare.
bMAC address to compare to.
Returns
true if inferior or equal.

◆ operator<=() [7/8]

bool join::operator<= ( const Value & lhs,
const Value & rhs )
constexpr

compare if lower or equal than.

Parameters
lhsvalue to compare.
rhsvalue to compare to.
Returns
true if lower or equal than.

◆ operator<=() [8/8]

template<typename... Ts>
bool join::operator<= ( const Variant< Ts... > & lhs,
const Variant< Ts... > & rhs )
constexpr

compare if lower or equal than.

Parameters
lhsvalue to compare.
rhsvalue to compare to.
Returns
true if lower or equal than.

◆ operator==() [1/18]

template<class Protocol >
bool join::operator== ( const BasicInternetEndpoint< Protocol > & a,
const BasicInternetEndpoint< Protocol > & b )
noexcept

compare if equal.

Parameters
aendpoint to compare.
bendpoint to compare to.
Returns
true if endpoints is equal, false otherwise.

◆ operator==() [2/18]

template<class Protocol >
bool join::operator== ( const BasicLinkLayerEndpoint< Protocol > & a,
const BasicLinkLayerEndpoint< Protocol > & b )
noexcept

compare if endpoints are equal.

Parameters
aendpoint to compare.
bendpoint to compare to.
Returns
true if endpoints are equal, false otherwise.

◆ operator==() [3/18]

template<class Protocol >
bool join::operator== ( const BasicNetlinkEndpoint< Protocol > & a,
const BasicNetlinkEndpoint< Protocol > & b )
noexcept

compare if endpoints are equal.

Parameters
aendpoint to compare.
bendpoint to compare to.
Returns
true if endpoints are equal, false otherwise.

◆ operator==() [4/18]

template<class Protocol >
bool join::operator== ( const BasicUnixEndpoint< Protocol > & a,
const BasicUnixEndpoint< Protocol > & b )
noexcept

compare if endpoints are equal.

Parameters
aendpoint to compare.
bendpoint to compare to.
Returns
true if endpoints are equal, false otherwise.

◆ operator==() [5/18]

bool join::operator== ( const Http & a,
const Http & b )
constexprnoexcept

check if equals.

Parameters
aprotocol to check.
bprotocol to check.
Returns
true if equals.

◆ operator==() [6/18]

bool join::operator== ( const Https & a,
const Https & b )
constexprnoexcept

check if equals.

Parameters
aprotocol to check.
bprotocol to check.
Returns
true if equals.

◆ operator==() [7/18]

bool join::operator== ( const Icmp & a,
const Icmp & b )
constexprnoexcept

check if equal.

Parameters
aprotocol to compare.
bprotocol to compare to.
Returns
true if equal.

◆ operator==() [8/18]

bool join::operator== ( const Interface::Ptr & lhs,
const Interface::Ptr & rhs )
inline

compare if two interfaces are equals.

Parameters
aInterface to compare.
bInterface to compare to.
Returns
true if equal.

◆ operator==() [9/18]

bool join::operator== ( const IpAddress & a,
const IpAddress & b )

compare if two IP address are equals.

Parameters
aaddress to compare.
baddress to compare to.
Returns
true if equal.

◆ operator==() [10/18]

bool join::operator== ( const MacAddress & a,
const MacAddress & b )

compare if two MAC address are equals.

Parameters
aMAC address to compare.
bMAC address to compare to.
Returns
true if equal.

◆ operator==() [11/18]

bool join::operator== ( const Netlink & a,
const Netlink & b )
constexprnoexcept

check if equals.

Parameters
aprotocol to check.
bprotocol to check.
Returns
true if equals.

◆ operator==() [12/18]

bool join::operator== ( const Smtp & a,
const Smtp & b )
constexprnoexcept

check if equals.

Parameters
aprotocol to check.
bprotocol to check.
Returns
true if equals.

◆ operator==() [13/18]

bool join::operator== ( const Smtps & a,
const Smtps & b )
constexprnoexcept

check if equals.

Parameters
aprotocol to check.
bprotocol to check.
Returns
true if equals.

◆ operator==() [14/18]

bool join::operator== ( const Tcp & a,
const Tcp & b )
constexprnoexcept

check if equals.

Parameters
aprotocol to check.
bprotocol to check.
Returns
true if equals.

◆ operator==() [15/18]

bool join::operator== ( const Tls & a,
const Tls & b )
constexprnoexcept

check if equals.

Parameters
aprotocol to check.
bprotocol to check.
Returns
true if equals.

◆ operator==() [16/18]

bool join::operator== ( const Udp & a,
const Udp & b )
constexprnoexcept

check if equals.

Parameters
aprotocol to check.
bprotocol to check.
Returns
true if equals.

◆ operator==() [17/18]

bool join::operator== ( const Value & lhs,
const Value & rhs )
constexpr

compare if equal.

Parameters
lhsvalue to compare.
rhsvalue to compare to.
Returns
true if equal.

◆ operator==() [18/18]

template<typename... Ts>
bool join::operator== ( const Variant< Ts... > & lhs,
const Variant< Ts... > & rhs )
constexpr

compare if equal.

Parameters
lhsvalue to compare.
rhsvalue to compare to.
Returns
true if equal.

◆ operator>() [1/8]

template<class Protocol >
bool join::operator> ( const BasicInternetEndpoint< Protocol > & a,
const BasicInternetEndpoint< Protocol > & b )
noexcept

compare if greater.

Parameters
aendpoint to compare.
bendpoint to compare to.
Returns
true if greater, false otherwise.

◆ operator>() [2/8]

template<class Protocol >
bool join::operator> ( const BasicLinkLayerEndpoint< Protocol > & a,
const BasicLinkLayerEndpoint< Protocol > & b )
noexcept

compare if endpoint is greater.

Parameters
aendpoint to compare.
bendpoint to compare to.
Returns
true if greater, false otherwise.

◆ operator>() [3/8]

template<class Protocol >
bool join::operator> ( const BasicNetlinkEndpoint< Protocol > & a,
const BasicNetlinkEndpoint< Protocol > & b )
noexcept

compare if endpoint is greater.

Parameters
aendpoint to compare.
bendpoint to compare to.
Returns
true if greater, false otherwise.

◆ operator>() [4/8]

template<class Protocol >
bool join::operator> ( const BasicUnixEndpoint< Protocol > & a,
const BasicUnixEndpoint< Protocol > & b )
noexcept

compare if endpoint is greater.

Parameters
aendpoint to compare.
bendpoint to compare to.
Returns
true if greater, false otherwise.

◆ operator>() [5/8]

bool join::operator> ( const IpAddress & a,
const IpAddress & b )

compare if IP address is superior.

Parameters
aaddress to compare.
baddress to compare to.
Returns
true if superior.

◆ operator>() [6/8]

bool join::operator> ( const MacAddress & a,
const MacAddress & b )

compare if MAC address is superior.

Parameters
aMAC address to compare.
bMAC address to compare to.
Returns
true if superior.

◆ operator>() [7/8]

bool join::operator> ( const Value & lhs,
const Value & rhs )
constexpr

compare if greater than.

Parameters
lhsvalue to compare.
rhsvalue to compare to.
Returns
true if greater than.

◆ operator>() [8/8]

template<typename... Ts>
bool join::operator> ( const Variant< Ts... > & lhs,
const Variant< Ts... > & rhs )
constexpr

compare if greater than.

Parameters
lhsvalue to compare.
rhsvalue to compare to.
Returns
true if greater than.

◆ operator>=() [1/8]

template<class Protocol >
bool join::operator>= ( const BasicInternetEndpoint< Protocol > & a,
const BasicInternetEndpoint< Protocol > & b )
noexcept

compare if greater or equal.

Parameters
aendpoint to compare.
bendpoint to compare to.
Returns
true if greater or equal, false otherwise.

◆ operator>=() [2/8]

template<class Protocol >
bool join::operator>= ( const BasicLinkLayerEndpoint< Protocol > & a,
const BasicLinkLayerEndpoint< Protocol > & b )
noexcept

compare if endpoint is greater or equal.

Parameters
aendpoint to compare.
bendpoint to compare to.
Returns
true if greater or equal, false otherwise.

◆ operator>=() [3/8]

template<class Protocol >
bool join::operator>= ( const BasicNetlinkEndpoint< Protocol > & a,
const BasicNetlinkEndpoint< Protocol > & b )
noexcept

compare if endpoint is greater or equal.

Parameters
aendpoint to compare.
bendpoint to compare to.
Returns
true if greater or equal, false otherwise.

◆ operator>=() [4/8]

template<class Protocol >
bool join::operator>= ( const BasicUnixEndpoint< Protocol > & a,
const BasicUnixEndpoint< Protocol > & b )
noexcept

compare if endpoint is greater or equal.

Parameters
aendpoint to compare.
bendpoint to compare to.
Returns
true if greater or equal, false otherwise.

◆ operator>=() [5/8]

bool join::operator>= ( const IpAddress & a,
const IpAddress & b )

compare if IP address is superior or equal.

Parameters
aaddress to compare.
baddress to compare to.
Returns
true if superior or equal.

◆ operator>=() [6/8]

bool join::operator>= ( const MacAddress & a,
const MacAddress & b )

compare if MAC address is superior or equal.

Parameters
aMAC address to compare.
bMAC address to compare to.
Returns
true if superior or equal.

◆ operator>=() [7/8]

bool join::operator>= ( const Value & lhs,
const Value & rhs )
constexpr

compare if greater or equal than.

Parameters
lhsvalue to compare.
rhsvalue to compare to.
Returns
true if greater or equal than.

◆ operator>=() [8/8]

template<typename... Ts>
bool join::operator>= ( const Variant< Ts... > & lhs,
const Variant< Ts... > & rhs )
constexpr

compare if greater or equal than.

Parameters
lhsvalue to compare.
rhsvalue to compare to.
Returns
true if greater or equal than.

◆ operator>>() [1/2]

template<class Protocol >
BasicHttpClient< Protocol > & join::operator>> ( BasicHttpClient< Protocol > & in,
HttpResponse & response )
constexpr

read HTTP response from the HTTP stream.

Parameters
inHTTP input stream.
responseHTTP response.
Returns
a reference to the HTTP input stream.

◆ operator>>() [2/2]

template<class Protocol >
BasicHttpSecureClient< Protocol > & join::operator>> ( BasicHttpSecureClient< Protocol > & in,
HttpResponse & response )
constexpr

read response from the HTTPS stream.

Parameters
inHTTPS input stream.
responseresponse.
Returns
a reference to the HTTPS input stream.

◆ operator^() [1/4]

__inline__ ChangeType join::operator^ ( ChangeType __a,
ChangeType __b )

perform binary XOR on ChangeType.

Parameters
__abitset.
__bother bitset.
Returns
bitset result of binary XOR on ChangeType.

◆ operator^() [2/4]

IpAddress join::operator^ ( const IpAddress & a,
const IpAddress & b )

perform XOR operation on IP address.

Parameters
aaddress to compare.
baddress to compare to.
Returns
result of XOR operation on IpAddress.

◆ operator^() [3/4]

MacAddress join::operator^ ( const MacAddress & a,
const MacAddress & b )

perform XOR operation on MAC address.

Parameters
aMAC address to compare.
bMAC address to compare to.
Returns
result of XOR operation on MacAddress.

◆ operator^() [4/4]

__inline__ HttpMethod join::operator^ ( HttpMethod __a,
HttpMethod __b )

perform binary XOR on HttpMethod.

Parameters
__abitset.
__bother bitset.
Returns
bitset result of binary XOR on HttpMethod.

◆ operator^=() [1/2]

__inline__ const ChangeType & join::operator^= ( ChangeType & __a,
ChangeType __b )

perform binary XOR on ChangeType.

Parameters
__abitset.
__bother bitset.
Returns
bitset result of binary XOR on ChangeType.

◆ operator^=() [2/2]

__inline__ const HttpMethod & join::operator^= ( HttpMethod & __a,
HttpMethod __b )

perform binary XOR on HttpMethod.

Parameters
__abitset.
__bother bitset.
Returns
bitset result of binary XOR on HttpMethod.

◆ operator|() [1/5]

__inline__ ChangeType join::operator| ( ChangeType __a,
ChangeType __b )

perform binary OR on ChangeType.

Parameters
__abitset.
__bother bitset.
Returns
bitset result of binary OR on ChangeType.

◆ operator|() [2/5]

IpAddress join::operator| ( const IpAddress & a,
const IpAddress & b )

perform OR operation on IP address.

Parameters
aaddress to compare.
baddress to compare to.
Returns
result of OR operation on IpAddress.

◆ operator|() [3/5]

MacAddress join::operator| ( const MacAddress & a,
const MacAddress & b )

perform OR operation on MAC address.

Parameters
aMAC address to compare.
bMAC address to compare to.
Returns
result of OR operation on MacAddress.

◆ operator|() [4/5]

__inline__ HttpMethod join::operator| ( HttpMethod __a,
HttpMethod __b )

perform binary OR on HttpMethod.

Parameters
__abitset.
__bother bitset.
Returns
bitset result of binary OR on HttpMethod.

◆ operator|() [5/5]

JsonReadMode join::operator| ( JsonReadMode a,
JsonReadMode b )
constexprnoexcept

perform binary OR on JsonReadMode.

Parameters
abitset.
bother bitset.
Returns
bitset result of binary OR on JsonReadMode.

◆ operator|=() [1/3]

__inline__ const ChangeType & join::operator|= ( ChangeType & __a,
ChangeType __b )

perform binary OR on ChangeType.

Parameters
__abitset.
__bother bitset.
Returns
bitset result of binary OR.

◆ operator|=() [2/3]

__inline__ const HttpMethod & join::operator|= ( HttpMethod & __a,
HttpMethod __b )

perform binary OR on HttpMethod.

Parameters
__abitset.
__bother bitset.
Returns
bitset result of binary OR.

◆ operator|=() [3/3]

const JsonReadMode & join::operator|= ( JsonReadMode & a,
JsonReadMode b )
constexprnoexcept

perform binary OR on JsonReadMode.

Parameters
abitset.
bother bitset.
Returns
bitset result of binary OR.

◆ operator~() [1/2]

__inline__ ChangeType join::operator~ ( ChangeType __a)

perform binary NOT on ChangeType.

Parameters
__abitset.
Returns
bitset result of binary NOT on ChangeType.

◆ operator~() [2/2]

__inline__ HttpMethod join::operator~ ( HttpMethod __a)

perform binary NOT on HttpMethod.

Parameters
__abitset.
Returns
bitset result of binary NOT on HttpMethod.

◆ parallelForEach()

template<class InputIt , class Func >
void join::parallelForEach ( InputIt first,
InputIt last,
Func function )

parrallel for each loop.

Parameters
firstfirst iterator.
lastlast iterator.
functionfunction to execute in parallel.

◆ randomize()

template<typename Type >
std::enable_if_t< std::numeric_limits< Type >::is_integer, Type > join::randomize ( )

create a random number.

Returns
random number.

◆ replaceAll()

__inline__ std::string & join::replaceAll ( std::string & str,
const std::string & toReplace,
const std::string & by )

replace all occurrences of a substring.

Parameters
strstring to scan.
toReplacestring to replace.
bystring to put instead of the "toReplace" substring.
Returns
a reference to the string.

◆ rsplit()

__inline__ std::vector< std::string > join::rsplit ( const std::string & in,
const std::string & delim )

split a string in reverse order using a delimiter.

Parameters
instring to split.
delimdelimiter.
Returns
list of tokens.

◆ saxCategory()

const std::error_category & join::saxCategory ( )
noexcept

get error category.

Returns
the created std::error_category object.

◆ split()

__inline__ std::vector< std::string > join::split ( const std::string & in,
const std::string & delim )

split a string using a delimiter.

Parameters
instring to split.
delimdelimiter.
Returns
list of tokens.

◆ swap()

template<class Type >
__inline__ Type & join::swap ( Type & val)

swaps byte orders.

Parameters
valvalue to swap.
Returns
the swapped value.

◆ toTimespec()

template<typename Clock , typename Duration >
struct timespec join::toTimespec ( std::chrono::time_point< Clock, Duration > timePoint)

converts time_point to timespec.

Parameters
timePointthe time point to convert.
Returns
timespec structure.

◆ trim()

__inline__ std::string & join::trim ( std::string & s)

trim.

Parameters
sstring to trim.
Returns
trimed string.

◆ trimLeft()

__inline__ std::string & join::trimLeft ( std::string & s)

trim left.

Parameters
sstring to trim.
Returns
trimed string.

◆ trimRight()

__inline__ std::string & join::trimRight ( std::string & s)

trim right.

Parameters
sstring to trim.
Returns
trimed string.

Variable Documentation

◆ defaultCipher

const std::string join::defaultCipher
extern
Initial value:
= "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+CHACHA20:EECDH+aRSA+CHACHA20:EECDH+ECDSA+AESCCM:"
"EDH+DSS+AESGCM:EDH+aRSA+CHACHA20:EDH+aRSA+AESCCM:-AESCCM8:EECDH+ECDSA+AESCCM8:EDH+aRSA+AESCCM8"

MIT License

Copyright (c) 2021 Mathieu Rabine

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

◆ defaultCipher_1_3

const std::string join::defaultCipher_1_3
extern
Initial value:
= "TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:"
"TLS_AES_128_CCM_SHA256:TLS_AES_128_CCM_8_SHA256"

◆ lastError

thread_local std::error_code join::lastError
extern

last error.