Core Library  1.7.0.0
Library containing core utilities and tools for threading, networking, logging, INI and CSV file management etc.
AsioDefines.h File Reference

File containing useful definitions. More...

#include <vector>
#include <functional>
#include <memory>
#include <utility>
#include <string>
#include <cstdint>
#include <boost/asio.hpp>
#include "CoreLibraryDllGlobal.h"
#include "Platform/PlatformDefines.h"

Go to the source code of this file.

Classes

struct  core_lib::asio::defs::MessageHeader
 Default message header structure that is also POD. More...
 
struct  core_lib::asio::defs::ReceivedMessage< Header >
 Template class to act as a generic wrapper around a received message for a given header type. More...
 

Namespaces

 core_lib
 The core_lib namespace.
 
 core_lib::asio
 The asio namespace.
 
 core_lib::asio::tcp
 The tcp namespace.
 
 core_lib::asio::udp
 The udp namespace.
 
 core_lib::asio::defs
 The asio_defs namespace.
 

Typedefs

using boost_iocontext_t = boost_asio::io_context
 Boost IO context convenience typedef.
 
using boost_tcp_t = boost_asio::ip::tcp
 Boost tcp convenience typedef.
 
using boost_tcp_acceptor_t = boost::asio::ip::tcp::acceptor
 Boost tcp acceptor convenience typedef.
 
using boost_udp_t = boost::asio::ip::udp
 Boost udp convenience typedef.
 
using boost_address_t = boost::asio::ip::address
 Boost general IP address convenience typedef.
 
using boost_address_v4_t = boost::asio::ip::address_v4
 Boost IPV4 address convenience typedef.
 
using core_lib::asio::defs::connection_t = std::pair< std::string, uint16_t >
 Typedef describing a network connection as (address, port).
 
using core_lib::asio::defs::tcp_conn_ptr_t = std::shared_ptr< tcp::TcpConnection >
 Typedef describing shared_ptr to a TcpConnection object.
 
using core_lib::asio::defs::char_buffer_t = std::vector< char >
 Typedef to generic char buffer based on s std::vector<char>.
 
using core_lib::asio::defs::default_received_message_t = ReceivedMessage< MessageHeader >
 Typedef to default version of received message typed to default message header struct.
 
using core_lib::asio::defs::default_received_message_ptr_t = std::shared_ptr< default_received_message_t >
 Typedef to default version of received message shared pointer.
 
using core_lib::asio::defs::default_message_dispatcher_t = std::function< void(default_received_message_ptr_t)>
 Typedef to default message dispatcher function object.
 
using core_lib::asio::defs::check_bytes_left_to_read_t = std::function< size_t(const char_buffer_t &)>
 Typedef to bytes left to reading checking utility function object.
 
using core_lib::asio::defs::message_received_handler_t = std::function< void(const char_buffer_t &)>
 Typedef to message received handler function object.
 

Enumerations

enum  core_lib::asio::tcp::eDefReservedSize : size_t { DEFAULT_RESERVED_SIZE = 512 * 1024 }
 Default internal receive buffer's initial reserved size in bytes.
 
enum  core_lib::asio::tcp::eDefUnsentAsyncCount : size_t { MAX_UNSENT_ASYNC_MSG_COUNT = 1000 }
 Maximum number of unsent async messages allowed on TCP socket IO Service queue.
 
enum  core_lib::asio::tcp::eSendOption { core_lib::asio::tcp::eSendOption::nagleOff, core_lib::asio::tcp::eSendOption::nagleOn }
 Enumeration to control nagle algorithm. More...
 
enum  core_lib::asio::udp::eUdpOption { core_lib::asio::udp::eUdpOption::broadcast, core_lib::asio::udp::eUdpOption::unicast }
 The udp options enumeration. More...
 
enum  core_lib::asio::udp::eUdpDatagramMaxSize : size_t { UDP_DATAGRAM_MAX_SIZE = 65507 }
 UDP datagram maximum size for user data. More...
 
enum  core_lib::asio::udp::eDefaultUdpSize : size_t { DEFAULT_UDP_BUF_SIZE = 8192 }
 UDP default buffer size. More...
 
enum  core_lib::asio::udp::eMulticastTTL {
  core_lib::asio::udp::eMulticastTTL::sameHost = 0, core_lib::asio::udp::eMulticastTTL::sameSubnet = 1, core_lib::asio::udp::eMulticastTTL::sameSite = 32, core_lib::asio::udp::eMulticastTTL::sameRegion = 64,
  core_lib::asio::udp::eMulticastTTL::sameContinent = 128, core_lib::asio::udp::eMulticastTTL::unrestricted = 255
}
 The multicast TTL enumeration. More...
 
enum  core_lib::asio::defs::eRespAddressLen : uint32_t { RESPONSE_ADDRESS_LEN = 16 }
 Constant defining response IP address length in bytes.
 
enum  core_lib::asio::defs::eMagicStringLen : uint32_t { MAGIC_STRING_LEN = 16 }
 Constant defining message header magic string length in bytes.
 
enum  core_lib::asio::defs::eArchiveType : uint8_t {
  core_lib::asio::defs::eArchiveType::portableBinary, core_lib::asio::defs::eArchiveType::binary, core_lib::asio::defs::eArchiveType::json, core_lib::asio::defs::eArchiveType::xml,
  core_lib::asio::defs::eArchiveType::raw, core_lib::asio::defs::eArchiveType::protobuf
}
 Message serialization archive type enumeration. More...
 
enum  core_lib::asio::defs::eMessageHeaderLen : size_t { MESSAGE_HEADER_LEN = sizeof(MessageHeader) }
 Constant defining message header magic string length in bytes.
 

Variables

const connection_t core_lib::asio::defs::NULL_CONNECTION
 Constant defining a null network connection as ("0.0.0.0", 0).
 
const char core_lib::asio::defs::DEFAULT_MAGIC_STRING [] {"_BEGIN_MESSAGE_"}
 Constant defining default magc string as "_BEGIN_MESSAGE_".
 

Detailed Description

File containing useful definitions.