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

#include <ConfigAddress.h>

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

Public Member Functions

ConfigAddresssetSocketAddress (const SocketAddress &socketAddress)
 
ConfigAddresssetBtAddress (const std::string &btAddress)
 
std::string getBtAddress () const
 
ConfigAddresssetChannel (uint8_t channel)
 
uint8_t getChannel () const
 

Protected Member Functions

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

Protected Attributes

CLI::Option * btAddressOpt = nullptr
 
CLI::Option * channelOpt = nullptr
 

Private Types

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

Private Member Functions

SocketAddressinit () final
 

Detailed Description

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

Definition at line 77 of file ConfigAddress.h.

Member Typedef Documentation

◆ Super

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

Definition at line 79 of file ConfigAddress.h.

Constructor & Destructor Documentation

◆ ConfigAddress()

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

Definition at line 59 of file ConfigAddress.cpp.

62 : Super(instance, addressOptionName, addressOptionDescription) {
63 btAddressOpt = Super::addOption( //
64 "--host",
65 "Bluetooth address",
66 "xx:xx:xx:xx:xx:xx",
67 "00:00:00:00:00:00",
68 CLI::TypeValidator<std::string>());
69 channelOpt = Super::addOption( //
70 "--channel",
71 "Channel number",
72 "channel");
73 }
ConfigAddressTypeT< net::rc::SocketAddress > Super

Member Function Documentation

◆ getBtAddress()

template<template< typename SocketAddress > typename ConfigAddressType>
std::string net::rc::config::ConfigAddress< ConfigAddressType >::getBtAddress ( ) const

Definition at line 104 of file ConfigAddress.cpp.

104 {
105 return btAddressOpt->as<std::string>();
106 }

◆ getChannel()

template<template< typename SocketAddress > typename ConfigAddressType>
uint8_t net::rc::config::ConfigAddress< ConfigAddressType >::getChannel ( ) const

Definition at line 121 of file ConfigAddress.cpp.

121 {
122 return channelOpt->as<uint8_t>();
123 }

◆ init()

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

Definition at line 76 of file ConfigAddress.cpp.

76 {
77 SocketAddress* socketAddress = new SocketAddress(btAddressOpt->as<std::string>(), channelOpt->as<uint8_t>());
78 socketAddress->init();
79
80 return socketAddress;
81 }
SocketClient::SocketAddress SocketAddress

◆ setBtAddress()

template<template< typename SocketAddress > typename ConfigAddressType>
ConfigAddress< ConfigAddressType > & net::rc::config::ConfigAddress< ConfigAddressType >::setBtAddress ( const std::string & btAddress)

Definition at line 92 of file ConfigAddress.cpp.

92 {
93 const utils::PreserveErrno preserveErrno;
94
96 ->default_val(btAddress)
97 ->clear();
98 Super::required(btAddressOpt, false);
99
100 return *this;
101 }

◆ setBtAddressRequired()

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

Definition at line 126 of file ConfigAddress.cpp.

126 {
127 Super::required(btAddressOpt, required);
128
129 return *this;
130 }

◆ setChannel()

template<template< typename SocketAddress > typename ConfigAddressType>
ConfigAddress< ConfigAddressType > & net::rc::config::ConfigAddress< ConfigAddressType >::setChannel ( uint8_t channel)

Definition at line 109 of file ConfigAddress.cpp.

109 {
110 const utils::PreserveErrno preserveErrno;
111
112 channelOpt //
113 ->default_val<int>(channel)
114 ->clear();
115 Super::required(channelOpt, false);
116
117 return *this;
118 }

◆ setChannelRequired()

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

Definition at line 133 of file ConfigAddress.cpp.

133 {
134 Super::required(channelOpt, required);
135
136 return *this;
137 }

◆ setSocketAddress()

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

Definition at line 84 of file ConfigAddress.cpp.

84 {
85 setBtAddress(socketAddress.getBtAddress());
86 setChannel(socketAddress.getChannel());
87
88 return *this;
89 }
ConfigAddress & setChannel(uint8_t channel)
ConfigAddress & setBtAddress(const std::string &btAddress)

Member Data Documentation

◆ btAddressOpt

template<template< typename SocketAddressT > typename ConfigAddressTypeT>
CLI::Option* net::rc::config::ConfigAddress< ConfigAddressTypeT >::btAddressOpt = nullptr
protected

Definition at line 102 of file ConfigAddress.h.

◆ channelOpt

template<template< typename SocketAddressT > typename ConfigAddressTypeT>
CLI::Option* net::rc::config::ConfigAddress< ConfigAddressTypeT >::channelOpt = nullptr
protected

Definition at line 103 of file ConfigAddress.h.


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