1 // Copyright 2018 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef OSP_PUBLIC_SERVER_CONFIG_H_
6 #define OSP_PUBLIC_SERVER_CONFIG_H_
7 
8 #include <cstdint>
9 #include <vector>
10 
11 #include "platform/api/network_interface.h"
12 #include "platform/base/ip_address.h"
13 
14 namespace openscreen {
15 namespace osp {
16 
17 struct ServerConfig {
18   ServerConfig();
19   ~ServerConfig();
20 
21   // The indexes of network interfaces that should be used by the Open Screen
22   // Library.  The indexes derive from the values of
23   // openscreen::InterfaceInfo::index.
24   std::vector<NetworkInterfaceIndex> interface_indexes;
25 
26   // The list of connection endpoints that are advertised for Open Screen
27   // protocol connections.  These must be reachable via one interface in
28   // |interface_indexes|.
29   std::vector<IPEndpoint> connection_endpoints;
30 };
31 
32 }  // namespace osp
33 }  // namespace openscreen
34 
35 #endif  // OSP_PUBLIC_SERVER_CONFIG_H_
36