Open Lighting Architecture: include/ola/network/InterfacePicker.h Source File

| Open Lighting Architecture 0.10.9

Loading...
Searching...
No Matches
InterfacePicker.h
1/*
2 * This library is free software; you can redistribute it and/or
3 * modify it under the terms of the GNU Lesser General Public
4 * License as published by the Free Software Foundation; either
5 * version 2.1 of the License, or (at your option) any later version.
6 *
7 * This library is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10 * Lesser General Public License for more details.
11 *
12 * You should have received a copy of the GNU Lesser General Public
13 * License along with this library; if not, write to the Free Software
14 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
15 *
16 * InterfacePicker.h
17 * Choose an interface to listen on
18 * Copyright (C) 2005 Simon Newton
19 */
20
21#ifndef INCLUDE_OLA_NETWORK_INTERFACEPICKER_H_
22#define INCLUDE_OLA_NETWORK_INTERFACEPICKER_H_
23
24#include <ola/network/Interface.h>
25#include <string>
26#include <vector>
27
28namespace ola {
29namespace network {
30
31
36
48 class InterfacePicker {
49 public:
50 struct Options {
51 public:
55 bool include_loopback;
56
61 bool specific_only;
62
63 Options()
64 : include_loopback(false),
65 specific_only(false) {
66 }
67 };
68
72 InterfacePicker() {}
73
77 virtual ~InterfacePicker() {}
78
79 // stupid windows, 'interface' seems to be a struct so we use iface here.
80 bool ChooseInterface(
81 Interface *iface,
82 const std::string &ip_or_name,
83 const Options &options = Options()) const;
84 bool ChooseInterface(
85 Interface *iface,
86 int32_t index,
87 const Options &options = Options()) const;
88
89 virtual std::vector<Interface> GetInterfaces(bool include_loopback) const = 0;
90
91 static InterfacePicker *NewPicker();
92};
93
96} // namespace network
97} // namespace ola
98#endif // INCLUDE_OLA_NETWORK_INTERFACEPICKER_H_
99
ola::network::Interface
Definition Interface.h:35
ola::network::InterfacePicker
Given some initial parameters, find the best network interface to use.
Definition InterfacePicker.h:48
ola::network::InterfacePicker::InterfacePicker
InterfacePicker()
Constructor.
Definition InterfacePicker.h:72
ola::network::InterfacePicker::~InterfacePicker
virtual ~InterfacePicker()
Destructor.
Definition InterfacePicker.h:77
ola::network
Code for network communication.
Definition AdvancedTCPConnector.cpp:28
ola
The namespace containing all OLA symbols.
Definition Credentials.cpp:44
ola::network::InterfacePicker::Options::specific_only
bool specific_only
Definition InterfacePicker.h:61
ola::network::InterfacePicker::Options::include_loopback
bool include_loopback
Definition InterfacePicker.h:55