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

#include <ConfigSocketClient.h>

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

Public Member Functions

ConfigSocketClientsetDisableNagleAlgorithm (bool disableNagleAlgorithm=true)
bool getDisableNagleAlgorithm () const
Public Member Functions inherited from net::in::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::in::SocketAddress >
net::in::SocketAddress getSocketAddress (const typename net::in::SocketAddress::SockAddr &sockAddr, typename net::in::SocketAddress::SockLen sockAddrLen)
void renew ()
Public Member Functions inherited from net::config::ConfigAddressBase< net::in::SocketAddress >
net::in::SocketAddress getSocketAddress (const typename net::in::SocketAddress::SockAddr &sockAddr, typename net::in::SocketAddress::SockLen sockAddrLen)
Public Member Functions inherited from net::in::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::in::config::ConfigAddress >
 ConfigSocketClient (net::config::ConfigInstance *instance)
Protected Member Functions inherited from net::in::config::ConfigAddress< net::config::ConfigAddressRemote >
 ConfigAddress (net::config::ConfigInstance *instance, const std::string &addressOptionName, const std::string &addressOptionDescription)
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::in::SocketAddress >
 ConfigAddress (ConfigInstance *instance, const std::string &addressOptionName, const std::string &addressOptionDescription)
 ~ConfigAddress () override
Protected Member Functions inherited from net::config::ConfigAddressBase< net::in::SocketAddress >
 ConfigAddressBase (ConfigInstance *instance, const std::string &addressOptionName="", const std::string &addressOptionDescription="")
virtual ~ConfigAddressBase ()=default
Protected Member Functions inherited from net::in::config::ConfigAddress< net::config::ConfigAddressLocal >
 ConfigAddress (net::config::ConfigInstance *instance, const std::string &addressOptionName, const std::string &addressOptionDescription)
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::in::config::ConfigAddress >
using Remote
using Local
using Connection
using Socket
Static Public Attributes inherited from net::config::ConfigAddressRemote< net::in::SocketAddress >
static constexpr std::string_view NAME
static constexpr std::string_view DESCRIPTION
Static Public Attributes inherited from net::config::ConfigAddressLocal< net::in::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::in::stream::config::ConfigSocketClient::ConfigSocketClient ( net::config::ConfigInstance * instance)
explicitprotected

Definition at line 60 of file ConfigSocketClient.cpp.

61 : net::config::stream::ConfigSocketClient<net::in::config::ConfigAddress>(instance) {
64 Remote::setAiSockType(SOCK_STREAM);
65 Remote::setAiProtocol(IPPROTO_TCP);
66
67 Local::setAiSockType(SOCK_STREAM);
68 Local::setAiProtocol(IPPROTO_TCP);
69
71 "--disable-nagle-algorithm{true}",
72 IPPROTO_TCP,
73 TCP_NODELAY,
74 "Turn of Nagle algorithm",
75 "tristat",
76 XSTR(IN_CLIENT_DISABLE_NAGLE_ALGORITHM),
77 CLI::IsMember({"true", "false", "default"}));
78 if (std::string(XSTR(IN6_SERVER_DISABLE_NAGLE_ALGORITHM)) == "default") {
80 }
81 }
#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::in::config::ConfigAddress< ConfigAddressTypeT >::setAiProtocol(), net::in::config::ConfigAddress< ConfigAddressTypeT >::setAiSockType(), utils::SubCommand::setDefaultValue(), net::in::config::ConfigAddress< ConfigAddressTypeT >::setHostRequired(), and net::in::config::ConfigAddress< ConfigAddressTypeT >::setPortRequired().

Here is the call graph for this function:

◆ ~ConfigSocketClient()

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

Definition at line 83 of file ConfigSocketClient.cpp.

83 {
84 }

Member Function Documentation

◆ getDisableNagleAlgorithm()

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

Definition at line 98 of file ConfigSocketClient.cpp.

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

References disableNagleAlgorithmOpt.

◆ setDisableNagleAlgorithm()

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

Definition at line 86 of file ConfigSocketClient.cpp.

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

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::in::stream::config::ConfigSocketClient::disableNagleAlgorithmOpt = nullptr
private

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