SNode.C
Loading...
Searching...
No Matches
net::in::config::ConfigAddress< ConfigAddressTypeT > Class Template Reference

#include <ConfigAddress.h>

Inheritance diagram for net::in::config::ConfigAddress< ConfigAddressTypeT >:
Collaboration diagram for net::in::config::ConfigAddress< ConfigAddressTypeT >:

Public Member Functions

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

Protected Member Functions

 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)

Private Types

using Super = ConfigAddressTypeT<net::in::SocketAddress>

Private Member Functions

SocketAddressinit () final

Private Attributes

CLI::Option * hostOpt = nullptr
CLI::Option * portOpt = nullptr
CLI::Option * numericOpt = nullptr
CLI::Option * numericReverseOpt = nullptr
int aiFlags = 0
int aiSockType = 0
int aiProtocol = 0

Detailed Description

template<template< typename SocketAddressT > typename ConfigAddressTypeT>
class net::in::config::ConfigAddress< ConfigAddressTypeT >

Definition at line 88 of file ConfigAddress.h.

Member Typedef Documentation

◆ Super

template<template< typename SocketAddressT > typename ConfigAddressTypeT>
using net::in::config::ConfigAddress< ConfigAddressTypeT >::Super = ConfigAddressTypeT<net::in::SocketAddress>
private

Definition at line 90 of file ConfigAddress.h.

Constructor & Destructor Documentation

◆ ConfigAddress()

template<template< typename SocketAddress > typename ConfigAddressType>
net::in::config::ConfigAddress< ConfigAddressType >::ConfigAddress ( net::config::ConfigInstance * instance,
const std::string & addressOptionName,
const std::string & addressOptionDescription )
explicitprotected

Definition at line 109 of file ConfigAddress.cpp.

114 "--host",
115 "Host name or IPv4 address",
116 "hostname|IPv4",
117 "0.0.0.0",
119
121 "--port",
122 "Port number",
123 "port",
124 0,
126
128 "--numeric{true}",
129 "Suppress host name lookup",
130 "bool",
132 CLI::IsMember({"true", "false"}));
133
135 "--numeric-reverse{true}",
136 "Suppress reverse host name lookup",
137 "bool",
139 CLI::IsMember({"true", "false"}));
140 }
#define XSTR(s)
ConfigAddressTypeT< net::in::SocketAddress > Super

Member Function Documentation

◆ getAiFlags()

template<template< typename SocketAddress > typename ConfigAddressType>
int net::in::config::ConfigAddress< ConfigAddressType >::getAiFlags ( ) const
protected

Definition at line 257 of file ConfigAddress.cpp.

257 {
258 return aiFlags;
259 }

References aiFlags.

◆ getAiProtocol()

template<template< typename SocketAddress > typename ConfigAddressType>
int net::in::config::ConfigAddress< ConfigAddressType >::getAiProtocol ( ) const
protected

Definition at line 281 of file ConfigAddress.cpp.

281 {
282 return aiProtocol;
283 }

References aiProtocol.

◆ getAiSockType()

template<template< typename SocketAddress > typename ConfigAddressType>
int net::in::config::ConfigAddress< ConfigAddressType >::getAiSockType ( ) const
protected

Definition at line 269 of file ConfigAddress.cpp.

269 {
270 return aiSockType;
271 }

References aiSockType.

◆ getHost()

template<template< typename SocketAddress > typename ConfigAddressType>
std::string net::in::config::ConfigAddress< ConfigAddressType >::getHost ( ) const

Definition at line 198 of file ConfigAddress.cpp.

198 {
199 return hostOpt->as<std::string>();
200 }

References hostOpt.

◆ getNumeric()

template<template< typename SocketAddress > typename ConfigAddressType>
bool net::in::config::ConfigAddress< ConfigAddressType >::getNumeric ( ) const

Definition at line 231 of file ConfigAddress.cpp.

231 {
232 return numericOpt->as<bool>();
233 }

References numericOpt.

◆ getNumericReverse()

template<template< typename SocketAddress > typename ConfigAddressType>
bool net::in::config::ConfigAddress< ConfigAddressType >::getNumericReverse ( ) const

Definition at line 245 of file ConfigAddress.cpp.

245 {
246 return numericReverseOpt->as<bool>();
247 }

References numericReverseOpt.

◆ getPort()

template<template< typename SocketAddress > typename ConfigAddressType>
uint16_t net::in::config::ConfigAddress< ConfigAddressType >::getPort ( ) const

Definition at line 215 of file ConfigAddress.cpp.

215 {
216 return portOpt->as<uint16_t>();
217 }

References portOpt.

◆ getSocketAddress()

template<template< typename SocketAddress > typename ConfigAddressType>
SocketAddress net::in::config::ConfigAddress< ConfigAddressType >::getSocketAddress ( const SocketAddress::SockAddr & sockAddr,
SocketAddress::SockLen sockAddrLen )

Definition at line 161 of file ConfigAddress.cpp.

References numericReverseOpt, and net::in::SocketAddress::SocketAddress().

Here is the call graph for this function:

◆ init()

template<template< typename SocketAddress > typename ConfigAddressType>
SocketAddress * net::in::config::ConfigAddress< ConfigAddressType >::init ( )
finalprivate

Definition at line 143 of file ConfigAddress.cpp.

143 {
145
146 try {
147 socketAddress->init({.aiFlags = (aiFlags & ~AI_NUMERICHOST) | (numericOpt->as<bool>() ? AI_NUMERICHOST : 0),
148 .aiSockType = aiSockType,
149 .aiProtocol = aiProtocol});
151 delete socketAddress;
152 socketAddress = nullptr;
153
154 throw;
155 }
156
157 return socketAddress;
158 }
SocketAddress * init() final

References hostOpt, net::in::SocketAddress::init(), portOpt, and net::in::SocketAddress::SocketAddress().

Here is the call graph for this function:

◆ setAiFlags()

template<template< typename SocketAddress > typename ConfigAddressType>
ConfigAddress< ConfigAddressType > & net::in::config::ConfigAddress< ConfigAddressType >::setAiFlags ( int aiFlags)
protected

Definition at line 250 of file ConfigAddress.cpp.

250 {
251 this->aiFlags = aiFlags;
252
253 return *this;
254 }

References aiFlags.

Referenced by net::in::stream::config::ConfigSocketServer::ConfigSocketServer().

Here is the caller graph for this function:

◆ setAiProtocol()

template<template< typename SocketAddress > typename ConfigAddressType>
ConfigAddress< ConfigAddressType > & net::in::config::ConfigAddress< ConfigAddressType >::setAiProtocol ( int aiProtocol)
protected

Definition at line 274 of file ConfigAddress.cpp.

274 {
275 this->aiProtocol = aiProtocol;
276
277 return *this;
278 }

References aiProtocol.

Referenced by net::in::stream::config::ConfigSocketClient::ConfigSocketClient(), and net::in::stream::config::ConfigSocketServer::ConfigSocketServer().

Here is the caller graph for this function:

◆ setAiSockType()

template<template< typename SocketAddress > typename ConfigAddressType>
ConfigAddress< ConfigAddressType > & net::in::config::ConfigAddress< ConfigAddressType >::setAiSockType ( int aiSocktype)
protected

Definition at line 262 of file ConfigAddress.cpp.

262 {
263 this->aiSockType = aiSockType;
264
265 return *this;
266 }

References aiSockType.

Referenced by net::in::stream::config::ConfigSocketClient::ConfigSocketClient(), and net::in::stream::config::ConfigSocketServer::ConfigSocketServer().

Here is the caller graph for this function:

◆ setHost()

template<template< typename SocketAddress > typename ConfigAddressType>
ConfigAddress< ConfigAddressType > & net::in::config::ConfigAddress< ConfigAddressType >::setHost ( const std::string & ipOrHostname)

Definition at line 186 of file ConfigAddress.cpp.

186 {
188
189 hostOpt //
190 ->default_val(ipOrHostname)
191 ->clear();
192 Super::required(hostOpt, false);
193
194 return *this;
195 }

References hostOpt.

Referenced by setSocketAddress().

Here is the caller graph for this function:

◆ setHostRequired()

template<template< typename SocketAddress > typename ConfigAddressType>
ConfigAddress< ConfigAddressType > & net::in::config::ConfigAddress< ConfigAddressType >::setHostRequired ( bool required = true)
protected

Definition at line 286 of file ConfigAddress.cpp.

286 {
288
289 return *this;
290 }

References hostOpt.

Referenced by net::in::stream::config::ConfigSocketClient::ConfigSocketClient().

Here is the caller graph for this function:

◆ setNumeric()

template<template< typename SocketAddress > typename ConfigAddressType>
ConfigAddress< ConfigAddressType > & net::in::config::ConfigAddress< ConfigAddressType >::setNumeric ( bool numeric = true)

Definition at line 220 of file ConfigAddress.cpp.

220 {
222
223 numericOpt //
224 ->default_str(numeric ? "true" : "false")
225 ->clear();
226
227 return *this;
228 }

References numericOpt.

◆ setNumericReverse()

template<template< typename SocketAddress > typename ConfigAddressType>
ConfigAddress< ConfigAddressType > & net::in::config::ConfigAddress< ConfigAddressType >::setNumericReverse ( bool numeric = true)

Definition at line 236 of file ConfigAddress.cpp.

236 {
238 ->default_str(numeric ? "true" : "false")
239 ->clear();
240
241 return *this;
242 }

References numericReverseOpt.

◆ setPort()

template<template< typename SocketAddress > typename ConfigAddressType>
ConfigAddress< ConfigAddressType > & net::in::config::ConfigAddress< ConfigAddressType >::setPort ( uint16_t port)

Definition at line 203 of file ConfigAddress.cpp.

203 {
205
206 portOpt //
207 ->default_val(port)
208 ->clear();
209 Super::required(portOpt, false);
210
211 return *this;
212 }

References portOpt.

Referenced by setSocketAddress().

Here is the caller graph for this function:

◆ setPortRequired()

template<template< typename SocketAddress > typename ConfigAddressType>
ConfigAddress< ConfigAddressType > & net::in::config::ConfigAddress< ConfigAddressType >::setPortRequired ( bool required = true)
protected

Definition at line 293 of file ConfigAddress.cpp.

293 {
295
296 return *this;
297 }

References portOpt.

Referenced by net::in::stream::config::ConfigSocketClient::ConfigSocketClient(), and net::in::stream::config::ConfigSocketServer::ConfigSocketServer().

Here is the caller graph for this function:

◆ setSocketAddress()

template<template< typename SocketAddress > typename ConfigAddressType>
ConfigAddress< ConfigAddressType > & net::in::config::ConfigAddress< ConfigAddressType >::setSocketAddress ( const SocketAddress & socketAddress)

Definition at line 178 of file ConfigAddress.cpp.

178 {
181
182 return *this;
183 }
ConfigAddress & setHost(const std::string &ipOrHostname)
ConfigAddress & setPort(uint16_t port)

References net::in::SocketAddress::getHost(), net::in::SocketAddress::getPort(), setHost(), and setPort().

Here is the call graph for this function:

Member Data Documentation

◆ aiFlags

template<template< typename SocketAddressT > typename ConfigAddressTypeT>
int net::in::config::ConfigAddress< ConfigAddressTypeT >::aiFlags = 0
private

Definition at line 137 of file ConfigAddress.h.

Referenced by getAiFlags(), and setAiFlags().

◆ aiProtocol

template<template< typename SocketAddressT > typename ConfigAddressTypeT>
int net::in::config::ConfigAddress< ConfigAddressTypeT >::aiProtocol = 0
private

Definition at line 139 of file ConfigAddress.h.

Referenced by getAiProtocol(), and setAiProtocol().

◆ aiSockType

template<template< typename SocketAddressT > typename ConfigAddressTypeT>
int net::in::config::ConfigAddress< ConfigAddressTypeT >::aiSockType = 0
private

Definition at line 138 of file ConfigAddress.h.

Referenced by getAiSockType(), and setAiSockType().

◆ hostOpt

template<template< typename SocketAddressT > typename ConfigAddressTypeT>
CLI::Option* net::in::config::ConfigAddress< ConfigAddressTypeT >::hostOpt = nullptr
private

Definition at line 132 of file ConfigAddress.h.

Referenced by getHost(), init(), setHost(), and setHostRequired().

◆ numericOpt

template<template< typename SocketAddressT > typename ConfigAddressTypeT>
CLI::Option* net::in::config::ConfigAddress< ConfigAddressTypeT >::numericOpt = nullptr
private

Definition at line 134 of file ConfigAddress.h.

Referenced by getNumeric(), and setNumeric().

◆ numericReverseOpt

template<template< typename SocketAddressT > typename ConfigAddressTypeT>
CLI::Option* net::in::config::ConfigAddress< ConfigAddressTypeT >::numericReverseOpt = nullptr
private

Definition at line 135 of file ConfigAddress.h.

Referenced by getNumericReverse(), getSocketAddress(), and setNumericReverse().

◆ portOpt

template<template< typename SocketAddressT > typename ConfigAddressTypeT>
CLI::Option* net::in::config::ConfigAddress< ConfigAddressTypeT >::portOpt = nullptr
private

Definition at line 133 of file ConfigAddress.h.

Referenced by getPort(), init(), setPort(), and setPortRequired().


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