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