123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- #ifndef API_TEST_TIME_CONTROLLER_H_
- #define API_TEST_TIME_CONTROLLER_H_
- #include <functional>
- #include <memory>
- #include <string>
- #include "api/task_queue/task_queue_factory.h"
- #include "api/units/time_delta.h"
- #include "api/units/timestamp.h"
- #include "modules/utility/include/process_thread.h"
- #include "rtc_base/synchronization/yield_policy.h"
- #include "rtc_base/thread.h"
- #include "system_wrappers/include/clock.h"
- namespace webrtc {
- class TimeController {
- public:
- virtual ~TimeController() = default;
-
-
- virtual Clock* GetClock() = 0;
-
-
- virtual TaskQueueFactory* GetTaskQueueFactory() = 0;
-
-
-
-
- std::unique_ptr<TaskQueueFactory> CreateTaskQueueFactory();
-
- virtual std::unique_ptr<ProcessThread> CreateProcessThread(
- const char* thread_name) = 0;
-
-
-
- virtual std::unique_ptr<rtc::Thread> CreateThread(
- const std::string& name,
- std::unique_ptr<rtc::SocketServer> socket_server = nullptr) = 0;
-
-
- virtual rtc::Thread* GetMainThread() = 0;
-
-
- virtual void AdvanceTime(TimeDelta duration) = 0;
-
-
-
-
- bool Wait(const std::function<bool()>& condition,
- TimeDelta max_duration = TimeDelta::Seconds(5));
- };
- class ControlledAlarmClock {
- public:
- virtual ~ControlledAlarmClock() = default;
-
- virtual Clock* GetClock() = 0;
-
-
-
-
-
- virtual bool ScheduleAlarmAt(Timestamp deadline) = 0;
-
- virtual void SetCallback(std::function<void()> callback) = 0;
-
- virtual void Sleep(TimeDelta duration) = 0;
- };
- }
- #endif
|