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

#include <ConfigAddress.h>

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

Public Member Functions

ConfigAddresssetSocketAddress (const SocketAddress &socketAddress)
 
ConfigAddresssetSunPath (const std::string &sunPath)
 
std::string getSunPath () const
 

Protected Member Functions

 ConfigAddress (net::config::ConfigInstance *instance, const std::string &addressOptionName, const std::string &addressOptionDescription)
 
ConfigAddresssunPathRequired (bool required=true)
 

Private Types

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

Private Member Functions

SocketAddressinit () final
 

Private Attributes

CLI::Option * sunPathOpt = nullptr
 

Detailed Description

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

Definition at line 54 of file ConfigAddress.h.

Member Typedef Documentation

◆ Super

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

Definition at line 56 of file ConfigAddress.h.

Constructor & Destructor Documentation

◆ ConfigAddress()

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

Definition at line 40 of file ConfigAddress.cpp.

43 : Super(instance, addressOptionName, addressOptionDescription) {
44 sunPathOpt = Super::addOption( //
45 "--sun-path",
46 "Unix domain bind path",
47 "filename:FILE",
48 std::string('\0' + instance->getInstanceName() + std::to_string(getpid()) + "_" + utils::Uuid::getUuid()));
49 }
const std::string & getInstanceName() const
ConfigAddressTypeT< net::un::SocketAddress > Super
static std::string getUuid()
Definition Uuid.cpp:30

Member Function Documentation

◆ getSunPath()

template<template< typename SocketAddress > typename ConfigAddressType>
std::string net::un::config::ConfigAddress< ConfigAddressType >::getSunPath ( ) const

Definition at line 87 of file ConfigAddress.cpp.

87 {
88 return sunPathOpt->as<std::string>();
89 }

◆ init()

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

Definition at line 52 of file ConfigAddress.cpp.

52 {
53 SocketAddress* socketAddress = new SocketAddress(sunPathOpt->as<std::string>());
54
55 try {
56 socketAddress->init();
58 delete socketAddress;
59 socketAddress = nullptr;
60
61 throw;
62 }
63
64 return socketAddress;
65 }
SocketClient::SocketAddress SocketAddress

◆ setSocketAddress()

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

Definition at line 68 of file ConfigAddress.cpp.

68 {
69 setSunPath(socketAddress.getSunPath());
70
71 return *this;
72 }
ConfigAddress & setSunPath(const std::string &sunPath)

◆ setSunPath()

template<template< typename SocketAddress > typename ConfigAddressType>
ConfigAddress< ConfigAddressType > & net::un::config::ConfigAddress< ConfigAddressType >::setSunPath ( const std::string & sunPath)

Definition at line 75 of file ConfigAddress.cpp.

75 {
76 const utils::PreserveErrno preserveErrno;
77
78 sunPathOpt //
79 ->default_val(sunPath)
80 ->clear();
81 Super::required(sunPathOpt, false);
82
83 return *this;
84 }

◆ sunPathRequired()

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

Definition at line 92 of file ConfigAddress.cpp.

92 {
93 Super::required(sunPathOpt, required);
94
95 return *this;
96 }

Member Data Documentation

◆ sunPathOpt

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

Definition at line 76 of file ConfigAddress.h.


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