27#include <nidas/Config.h>
29#ifdef HAVE_BLUETOOTH_RFCOMM_H
31#ifndef NIDAS_UTIL_BLUETOOTHRFCOMMSOCKETADDRESS
32#define NIDAS_UTIL_BLUETOOTHRFCOMMSOCKETADDRESS
36#include <bluetooth/rfcomm.h>
38namespace nidas {
namespace util {
43class BluetoothRFCommSocketAddress:
public SocketAddress {
46 BluetoothRFCommSocketAddress();
51 BluetoothRFCommSocketAddress(
int channel);
56 BluetoothRFCommSocketAddress(
const std::string& host,
int channel);
61 BluetoothRFCommSocketAddress(
const BluetoothAddress& addr,
int channel);
66 BluetoothRFCommSocketAddress(
const struct sockaddr_rc* sockaddr);
71 BluetoothRFCommSocketAddress(
const BluetoothRFCommSocketAddress&);
76 BluetoothRFCommSocketAddress& operator=(
const BluetoothRFCommSocketAddress& x);
81 BluetoothRFCommSocketAddress* clone()
const;
86 int getFamily()
const {
return AF_BLUETOOTH; }
91 BluetoothAddress getBluetoothAddress()
const {
92 return BluetoothAddress(&_sockaddr.rc_bdaddr);
98 int getPort()
const {
return _sockaddr.rc_channel; }
106 struct sockaddr* getSockAddrPtr() {
return (
struct sockaddr*) &_sockaddr; }
111 const struct sockaddr* getConstSockAddrPtr()
const
113 return (
const struct sockaddr*) &_sockaddr;
116 socklen_t getSockAddrLen()
const {
return sizeof(_sockaddr); }
121 std::string toString()
const;
126 std::string toAddressString()
const;
132 bool operator < (
const BluetoothRFCommSocketAddress& x)
const;
137 bool operator == (
const BluetoothRFCommSocketAddress& x)
const;
140 struct sockaddr_rc _sockaddr;
Root namespace for the NCAR In-Situ Data Acquisition Software.
Definition A2DConverter.h:31