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 55 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 57 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 37 of file ConfigAddress.cpp.

40 : Super(instance, addressOptionName, addressOptionDescription) {
41 btAddressOpt = Super::addOption( //
42 "--host",
43 "Bluetooth address",
44 "xx:xx:xx:xx:xx:xx",
45 "00:00:00:00:00:00",
46 CLI::TypeValidator<std::string>());
47 channelOpt = Super::addOption( //
48 "--channel",
49 "Channel number",
50 "channel");
51 }
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 82 of file ConfigAddress.cpp.

82 {
83 return btAddressOpt->as<std::string>();
84 }

◆ getChannel()

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

Definition at line 99 of file ConfigAddress.cpp.

99 {
100 return channelOpt->as<uint8_t>();
101 }

◆ init()

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

Definition at line 54 of file ConfigAddress.cpp.

54 {
55 SocketAddress* socketAddress = new SocketAddress(btAddressOpt->as<std::string>(), channelOpt->as<uint8_t>());
56 socketAddress->init();
57
58 return socketAddress;
59 }
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 70 of file ConfigAddress.cpp.

70 {
71 const utils::PreserveErrno preserveErrno;
72
74 ->default_val(btAddress)
75 ->clear();
76 Super::required(btAddressOpt, false);
77
78 return *this;
79 }

◆ setBtAddressRequired()

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

Definition at line 104 of file ConfigAddress.cpp.

104 {
105 Super::required(btAddressOpt, required);
106
107 return *this;
108 }

◆ setChannel()

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

Definition at line 87 of file ConfigAddress.cpp.

87 {
88 const utils::PreserveErrno preserveErrno;
89
90 channelOpt //
91 ->default_val<int>(channel)
92 ->clear();
93 Super::required(channelOpt, false);
94
95 return *this;
96 }

◆ setChannelRequired()

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

Definition at line 111 of file ConfigAddress.cpp.

111 {
112 Super::required(channelOpt, required);
113
114 return *this;
115 }

◆ setSocketAddress()

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

Definition at line 62 of file ConfigAddress.cpp.

62 {
63 setBtAddress(socketAddress.getBtAddress());
64 setChannel(socketAddress.getChannel());
65
66 return *this;
67 }
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 80 of file ConfigAddress.h.

◆ channelOpt

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

Definition at line 81 of file ConfigAddress.h.


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