1 // Copyright 2019 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 QUICHE_QUIC_MASQUE_MASQUE_SERVER_H_ 6 #define QUICHE_QUIC_MASQUE_MASQUE_SERVER_H_ 7 8 #include "quiche/quic/masque/masque_server_backend.h" 9 #include "quiche/quic/masque/masque_utils.h" 10 #include "quiche/quic/platform/api/quic_export.h" 11 #include "quiche/quic/tools/quic_server.h" 12 13 namespace quic { 14 15 // QUIC server that implements MASQUE. 16 class QUIC_NO_EXPORT MasqueServer : public QuicServer { 17 public: 18 explicit MasqueServer(MasqueMode masque_mode, 19 MasqueServerBackend* masque_server_backend); 20 21 // Disallow copy and assign. 22 MasqueServer(const MasqueServer&) = delete; 23 MasqueServer& operator=(const MasqueServer&) = delete; 24 25 // From QuicServer. 26 QuicDispatcher* CreateQuicDispatcher() override; 27 28 private: 29 MasqueMode masque_mode_; 30 MasqueServerBackend* masque_server_backend_; // Unowned. 31 }; 32 33 } // namespace quic 34 35 #endif // QUICHE_QUIC_MASQUE_MASQUE_SERVER_H_ 36