SNode.C
Loading...
Searching...
No Matches
net::in6::stream::config::ConfigSocketClient Class Reference

#include <ConfigSocketClient.h>

Inheritance diagram for net::in6::stream::config::ConfigSocketClient:
Collaboration diagram for net::in6::stream::config::ConfigSocketClient:

Public Member Functions

ConfigSocketClientsetDisableNagleAlgorithm (bool disableNagleAlgorithm=true)
bool getDisableNagleAlgorithm () const
Public Member Functions inherited from net::in6::config::ConfigAddress< net::config::ConfigAddressRemote >
SocketAddress getSocketAddress (const SocketAddress::SockAddr &sockAddr, SocketAddress::SockLen sockAddrLen)
ConfigAddresssetSocketAddress (const SocketAddress &socketAddress)
ConfigAddresssetHost (const std::string &ipOrHostname)
std::string getHost () const
ConfigAddresssetPort (uint16_t port)
uint16_t getPort () const
ConfigAddresssetNumeric (bool numeric=true)
bool getNumeric () const
ConfigAddresssetNumericReverse (bool numeric=true)
bool getNumericReverse () const
void configurable (bool configurable=true) final
Public Member Functions inherited from net::config::ConfigSection
template<typename T>
 ConfigSection (ConfigInstance *instance, T *sectionPtr, const std::string &group="Sections")
 ~ConfigSection () override
 ConfigSection (const ConfigSection &)=delete
 ConfigSection (ConfigSection &&)=delete
ConfigSectionoperator= (const ConfigSection &)=delete
Public Member Functions inherited from utils::SubCommand
 SubCommand (const SubCommand &)=delete
 SubCommand (SubCommand &&)=delete
SubCommandoperator= (const SubCommand &)=delete
SubCommandoperator= (SubCommand &&)=delete
virtual ~SubCommand ()
std::string getName () const
std::string version () const
CLI::Option * setConfig (const std::string &defaultConfigFile) const
CLI::Option * setLogFile (const std::string &defaultLogFile) const
CLI::Option * setVersionFlag (const std::string &version) const
bool hasParent () const
SubCommandgetParent () const
SubCommandallowExtras (bool allow=true)
SubCommandrequired (bool required=true, bool force=true)
SubCommandrequired (SubCommand *subCommand, bool required=true)
SubCommandrequired (CLI::Option *option, bool required=true)
bool getRequired () const
SubCommandneeds (SubCommand *subCommand, bool needs=true)
SubCommanddisabled (SubCommand *subCommand, bool disabled=true)
SubCommandsetRequireCallback (const std::function< void(void)> &callback)
SubCommandfinalCallback (const std::function< void()> &finalCallback)
std::string configToStr () const
std::string help (const CLI::App *helpApp, const CLI::AppFormatMode &mode) const
template<typename NewSubCommand, typename... Args>
NewSubCommand * newSubCommand (Args &&... args)
template<typename RequestedSubCommand>
RequestedSubCommand * getSubCommand ()
template<typename RequestedSubCommand>
RequestedSubCommand * getSubCommand () const
CLI::Option * getOption (const std::string &name) const
CLI::Option * addOption (const std::string &name, const std::string &description, const std::string &typeName, const CLI::Validator &validator) const
template<typename ValueTypeT>
CLI::Option * addOption (const std::string &name, const std::string &description, const std::string &typeName, ValueTypeT defaultValue, const CLI::Validator &validator) const
template<typename ValueTypeT>
CLI::Option * addOptionVariable (const std::string &name, ValueTypeT &variable, const std::string &description, const std::string &typeName, const CLI::Validator &additionalValidator) const
template<typename ValueTypeT>
CLI::Option * addOptionVariable (const std::string &name, ValueTypeT &variable, const std::string &description, const std::string &typeName, ValueTypeT defaultValue, const CLI::Validator &additionalValidator) const
CLI::Option * addOptionFunction (const std::string &name, const std::function< void(const std::string &)> &callback, const std::string &description, const std::string &typeName, const CLI::Validator &validator) const
template<typename ValueTypeT>
CLI::Option * addOptionFunction (const std::string &name, const std::function< void(const std::string &)> &callback, const std::string &description, const std::string &typeName, ValueTypeT defaultValue, const CLI::Validator &validator) const
CLI::Option * addFlag (const std::string &name, const std::string &description, const std::string &typeName, const CLI::Validator &validator) const
template<typename ValueTypeT>
CLI::Option * addFlag (const std::string &name, const std::string &description, const std::string &typeName, ValueTypeT defaultValue, const CLI::Validator &validator) const
CLI::Option * addFlagFunction (const std::string &name, const std::function< void()> &callback, const std::string &description, const std::string &typeName, const CLI::Validator &validator) const
CLI::Option * addFlagFunction (const std::string &name, const std::function< void()> &callback, const std::string &description, const std::string &typeName, const std::string &defaultValue, const CLI::Validator &validator) const
Public Member Functions inherited from net::config::ConfigAddress< net::in6::SocketAddress >
net::in6::SocketAddress getSocketAddress (const typename net::in6::SocketAddress::SockAddr &sockAddr, typename net::in6::SocketAddress::SockLen sockAddrLen)
void renew ()
Public Member Functions inherited from net::config::ConfigAddressBase< net::in6::SocketAddress >
net::in6::SocketAddress getSocketAddress (const typename net::in6::SocketAddress::SockAddr &sockAddr, typename net::in6::SocketAddress::SockLen sockAddrLen)
Public Member Functions inherited from net::in6::config::ConfigAddress< net::config::ConfigAddressLocal >
SocketAddress getSocketAddress (const SocketAddress::SockAddr &sockAddr, SocketAddress::SockLen sockAddrLen)
ConfigAddresssetSocketAddress (const SocketAddress &socketAddress)
ConfigAddresssetHost (const std::string &ipOrHostname)
std::string getHost () const
ConfigAddresssetPort (uint16_t port)
uint16_t getPort () const
ConfigAddresssetNumeric (bool numeric=true)
bool getNumeric () const
ConfigAddresssetNumericReverse (bool numeric=true)
bool getNumericReverse () const
void configurable (bool configurable=true) final
Public Member Functions inherited from net::config::ConfigConnection
utils::Timeval getReadTimeout () const
ConfigConnectionsetReadTimeout (const utils::Timeval &newReadTimeoutSet)
utils::Timeval getWriteTimeout () const
ConfigConnectionsetWriteTimeout (const utils::Timeval &newWriteTimeoutSet)
std::size_t getReadBlockSize () const
ConfigConnectionsetReadBlockSize (std::size_t newReadBlockSize)
std::size_t getWriteBlockSize () const
ConfigConnectionsetWriteBlockSize (std::size_t newWriteBlockSize)
utils::Timeval getTerminateTimeout () const
ConfigConnectionsetTerminateTimeout (const utils::Timeval &newTerminateTimeout)
Public Member Functions inherited from net::config::ConfigPhysicalSocketClient
ConfigPhysicalSocketClientsetReconnect (bool reconnect=true)
bool getReconnect () const
ConfigPhysicalSocketClientsetReconnectTime (double time)
double getReconnectTime () const
ConfigPhysicalSocketClientsetConnectTimeout (const utils::Timeval &connectTimeout)
utils::Timeval getConnectTimeout () const
Public Member Functions inherited from net::config::ConfigPhysicalSocket
const std::map< int, std::map< int, net::phy::PhysicalSocketOption > > & getSocketOptions () const
ConfigPhysicalSocketaddSocketOption (int optLevel, int optName, int optValue)
ConfigPhysicalSocketaddSocketOption (int optLevel, int optName, const std::string &optValue)
ConfigPhysicalSocketaddSocketOption (int optLevel, int optName, const std::vector< char > &optValue)
ConfigPhysicalSocketremoveSocketOption (int optLevel, int optName)
ConfigPhysicalSocketsetRetry (bool retry=true)
bool getRetry () const
ConfigPhysicalSocketsetRetryOnFatal (bool retry=true)
bool getRetryOnFatal () const
ConfigPhysicalSocketsetRetryTimeout (double sec)
double getRetryTimeout () const
ConfigPhysicalSocketsetRetryTries (unsigned int tries=0)
unsigned int getRetryTries () const
ConfigPhysicalSocketsetRetryBase (double base)
double getRetryBase () const
ConfigPhysicalSocketsetRetryLimit (unsigned int limit)
unsigned int getRetryLimit () const
ConfigPhysicalSocketsetRetryJitter (double percent)
double getRetryJitter () const
template<typename ConcretConfigPhysicalSocket>
 ConfigPhysicalSocket (ConfigInstance *instance, ConcretConfigPhysicalSocket *section)

Protected Member Functions

 ConfigSocketClient (net::config::ConfigInstance *instance)
 ~ConfigSocketClient () override
Protected Member Functions inherited from net::config::stream::ConfigSocketClient< net::in6::config::ConfigAddress >
 ConfigSocketClient (net::config::ConfigInstance *instance)
Protected Member Functions inherited from net::in6::config::ConfigAddress< net::config::ConfigAddressRemote >
 ConfigAddress (net::config::ConfigInstance *instance, const std::string &addressOptionName, const std::string &addressOptionDescription)
ConfigAddresssetIpv4Mapped (bool ipv4Mapped=true)
bool getIpv4Mapped () const
ConfigAddresssetAiFlags (int aiFlags)
int getAiFlags () const
ConfigAddresssetAiSockType (int aiSocktype)
int getAiSockType () const
ConfigAddresssetAiProtocol (int aiProtocol)
int getAiProtocol () const
ConfigAddresssetHostRequired (bool required=true)
ConfigAddresssetPortRequired (bool required=true)
Protected Member Functions inherited from utils::SubCommand
 SubCommand (SubCommand *parent, std::shared_ptr< utils::AppWithPtr > appWithPtr, const std::string &group, bool final)
template<typename ConcretSubCommand>
 SubCommand (SubCommand *parent, ConcretSubCommand *concretSubCommand, const std::string &group, bool final=true)
void parse (int argc, char *argv[]) const
SubCommanddescription (const std::string &description)
SubCommandfooter (const std::string &footer)
void removeSubCommand ()
template<typename ValueTypeT>
CLI::Option * setDefaultValue (CLI::Option *option, const ValueTypeT &value, bool clear=true) const
CLI::Option * setConfigurable (CLI::Option *option, bool configurable) const
Protected Member Functions inherited from net::config::ConfigAddress< net::in6::SocketAddress >
 ConfigAddress (ConfigInstance *instance, const std::string &addressOptionName, const std::string &addressOptionDescription)
 ~ConfigAddress () override
Protected Member Functions inherited from net::config::ConfigAddressBase< net::in6::SocketAddress >
 ConfigAddressBase (ConfigInstance *instance, const std::string &addressOptionName="", const std::string &addressOptionDescription="")
virtual ~ConfigAddressBase ()=default
Protected Member Functions inherited from net::in6::config::ConfigAddress< net::config::ConfigAddressLocal >
 ConfigAddress (net::config::ConfigInstance *instance, const std::string &addressOptionName, const std::string &addressOptionDescription)
ConfigAddresssetIpv4Mapped (bool ipv4Mapped=true)
bool getIpv4Mapped () const
ConfigAddresssetAiFlags (int aiFlags)
int getAiFlags () const
ConfigAddresssetAiSockType (int aiSocktype)
int getAiSockType () const
ConfigAddresssetAiProtocol (int aiProtocol)
int getAiProtocol () const
ConfigAddresssetHostRequired (bool required=true)
ConfigAddresssetPortRequired (bool required=true)
Protected Member Functions inherited from net::config::ConfigConnection
 ConfigConnection (ConfigInstance *instance)
 ~ConfigConnection () override
Protected Member Functions inherited from net::config::ConfigPhysicalSocketClient
 ConfigPhysicalSocketClient (ConfigInstance *instance)
 ~ConfigPhysicalSocketClient () override
Protected Member Functions inherited from net::config::ConfigPhysicalSocket
template<typename ConcretConfigPhysicalSocketT>
 ConfigPhysicalSocket (ConfigInstance *instance, ConcretConfigPhysicalSocketT *section)
 ~ConfigPhysicalSocket () override
CLI::Option * addSocketOption (const std::string &name, int optLevel, int optName, const std::string &description, const std::string &typeName, const std::string &defaultValue, const CLI::Validator &validator)

Private Attributes

CLI::Option * disableNagleAlgorithmOpt = nullptr

Additional Inherited Members

Public Types inherited from net::config::stream::ConfigSocketClient< net::in6::config::ConfigAddress >
using Remote
using Local
using Connection
using Socket
Static Public Attributes inherited from net::config::ConfigAddressRemote< net::in6::SocketAddress >
static constexpr std::string_view NAME
static constexpr std::string_view DESCRIPTION
Static Public Attributes inherited from net::config::ConfigAddressLocal< net::in6::SocketAddress >
static constexpr std::string_view NAME
static constexpr std::string_view DESCRIPTION
Static Public Attributes inherited from net::config::ConfigConnection
static constexpr std::string_view NAME {"connection"}
static constexpr std::string_view DESCRIPTION {"Configuration of established connections"}
Static Public Attributes inherited from net::config::ConfigPhysicalSocket
static constexpr std::string_view NAME {"socket"}
static constexpr std::string_view DESCRIPTION {"Configuration of socket behavior"}
Static Protected Member Functions inherited from utils::SubCommand
static CLI::App * getHelpTriggerApp ()
static CLI::App * getShowConfigTriggerApp ()
static CLI::App * getCommandlineTriggerApp ()
Static Protected Attributes inherited from utils::SubCommand
static std::shared_ptr< CLI::Formatter > sectionFormatter = makeSectionFormatter()
static std::map< std::string, std::string > aliases
static CLI::App * helpTriggerApp = nullptr
static CLI::App * showConfigTriggerApp = nullptr
static CLI::App * commandlineTriggerApp = nullptr

Detailed Description

Definition at line 58 of file ConfigSocketClient.h.

Constructor & Destructor Documentation

◆ ConfigSocketClient()

net::in6::stream::config::ConfigSocketClient::ConfigSocketClient ( net::config::ConfigInstance * instance)
explicitprotected

Definition at line 61 of file ConfigSocketClient.cpp.

62 : net::config::stream::ConfigSocketClient<net::in6::config::ConfigAddress>(instance) {
65 Remote::setAiSockType(SOCK_STREAM);
66 Remote::setAiProtocol(IPPROTO_TCP);
67
68 Local::setAiSockType(SOCK_STREAM);
69 Local::setAiProtocol(IPPROTO_TCP);
70
72 "--disable-nagle-algorithm{true}",
73 IPPROTO_TCP,
74 TCP_NODELAY,
75 "Turn of Nagle algorithm",
76 "tristat",
77 XSTR(IN6_CLIENT_DISABLE_NAGLE_ALGORITHM),
78 CLI::IsMember({"true", "false", "default"}));
79 if (std::string(XSTR(IN6_SERVER_DISABLE_NAGLE_ALGORITHM)) == "default") {
81 }
82 }
#define XSTR(s)
ConfigPhysicalSocket & addSocketOption(int optLevel, int optName, int optValue)
CLI::Option * setDefaultValue(CLI::Option *option, const ValueTypeT &value, bool clear=true) const
Definition SubCommand.h:347

References net::config::ConfigPhysicalSocket::addSocketOption(), net::config::stream::ConfigSocketClient< ConfigAddressLocalT, ConfigAddressRemoteT >::ConfigSocketClient(), disableNagleAlgorithmOpt, net::in6::config::ConfigAddress< ConfigAddressTypeT >::setAiProtocol(), net::in6::config::ConfigAddress< ConfigAddressTypeT >::setAiSockType(), utils::SubCommand::setDefaultValue(), net::in6::config::ConfigAddress< ConfigAddressTypeT >::setHostRequired(), and net::in6::config::ConfigAddress< ConfigAddressTypeT >::setPortRequired().

Here is the call graph for this function:

◆ ~ConfigSocketClient()

net::in6::stream::config::ConfigSocketClient::~ConfigSocketClient ( )
overrideprotected

Definition at line 84 of file ConfigSocketClient.cpp.

84 {
85 }

Member Function Documentation

◆ getDisableNagleAlgorithm()

bool net::in6::stream::config::ConfigSocketClient::getDisableNagleAlgorithm ( ) const

Definition at line 101 of file ConfigSocketClient.cpp.

101 {
102 bool disableNagleAlgorithm = false;
103
104 try {
105 disableNagleAlgorithm = disableNagleAlgorithmOpt->as<bool>();
106 } catch (CLI::RuntimeError&) {
107 }
108
109 return disableNagleAlgorithm;
110 }

References disableNagleAlgorithmOpt.

◆ setDisableNagleAlgorithm()

ConfigSocketClient & net::in6::stream::config::ConfigSocketClient::setDisableNagleAlgorithm ( bool disableNagleAlgorithm = true)

Definition at line 87 of file ConfigSocketClient.cpp.

87 {
88 const utils::PreserveErrno preserveErrno;
89
90 if (disableNagleAlgorithm) {
91 addSocketOption(IPPROTO_TCP, TCP_NODELAY, 1);
92 } else {
93 addSocketOption(IPPROTO_TCP, TCP_NODELAY, 0);
94 }
95
96 Local::setDefaultValue(disableNagleAlgorithmOpt, disableNagleAlgorithm ? "true" : "false");
97
98 return *this;
99 }

References net::config::ConfigPhysicalSocket::addSocketOption(), disableNagleAlgorithmOpt, and utils::SubCommand::setDefaultValue().

Here is the call graph for this function:

Member Data Documentation

◆ disableNagleAlgorithmOpt

CLI::Option* net::in6::stream::config::ConfigSocketClient::disableNagleAlgorithmOpt = nullptr
private

The documentation for this class was generated from the following files: