receiver_session_client.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // Copyright 2021 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. #ifndef FUCHSIA_WEB_WEBENGINE_BROWSER_RECEIVER_SESSION_CLIENT_H_
  5. #define FUCHSIA_WEB_WEBENGINE_BROWSER_RECEIVER_SESSION_CLIENT_H_
  6. #include <fuchsia/web/cpp/fidl.h>
  7. #include "components/cast_streaming/public/mojom/demuxer_connector.mojom.h"
  8. #include "mojo/public/cpp/bindings/associated_remote.h"
  9. namespace cast_streaming {
  10. class ReceiverSession;
  11. } // namespace cast_streaming
  12. // Holds a Cast Streaming Receiver Session.
  13. class ReceiverSessionClient {
  14. public:
  15. explicit ReceiverSessionClient(
  16. fidl::InterfaceRequest<fuchsia::web::MessagePort> message_port_request,
  17. bool video_only_receiver);
  18. ReceiverSessionClient(const ReceiverSessionClient& other) = delete;
  19. ~ReceiverSessionClient();
  20. ReceiverSessionClient& operator=(const ReceiverSessionClient&) = delete;
  21. void SetDemuxerConnector(
  22. mojo::AssociatedRemote<cast_streaming::mojom::DemuxerConnector>
  23. demuxer_connector);
  24. bool HasReceiverSession();
  25. private:
  26. // Populated in the ctor, and removed when |receiver_session_| is created in
  27. // SetDemuxerConnector().
  28. fidl::InterfaceRequest<fuchsia::web::MessagePort> message_port_request_;
  29. // Created in SetDemuxerConnector(), and empty prior to that call.
  30. std::unique_ptr<cast_streaming::ReceiverSession> receiver_session_;
  31. const bool video_only_receiver_;
  32. };
  33. #endif // FUCHSIA_WEB_WEBENGINE_BROWSER_RECEIVER_SESSION_CLIENT_H_