StartMultiTrackVideoStreamingGuard.hpp 487 B

1234567891011121314151617181920
  1. #pragma once
  2. #include <future>
  3. struct StartMultitrackVideoStreamingGuard {
  4. StartMultitrackVideoStreamingGuard() { future = guard.get_future().share(); };
  5. ~StartMultitrackVideoStreamingGuard() { guard.set_value(); }
  6. std::shared_future<void> GetFuture() const { return future; }
  7. static std::shared_future<void> MakeReadyFuture()
  8. {
  9. StartMultitrackVideoStreamingGuard guard;
  10. return guard.GetFuture();
  11. }
  12. private:
  13. std::promise<void> guard;
  14. std::shared_future<void> future;
  15. };