/* * Copyright (c) 2021 The WebRTC project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef NET_DCSCTP_TIMER_TASK_QUEUE_TIMEOUT_H_ #define NET_DCSCTP_TIMER_TASK_QUEUE_TIMEOUT_H_ #include <memory> #include <utility> #include "api/task_queue/pending_task_safety_flag.h" #include "api/task_queue/task_queue_base.h" #include "api/units/timestamp.h" #include "net/dcsctp/public/timeout.h" namespace dcsctp { // The TaskQueueTimeoutFactory creates `Timeout` instances, which schedules // itself to be triggered on the provided `task_queue`, which may be a thread, // an actual TaskQueue or something else which supports posting a delayed task. // // Note that each `DcSctpSocket` must have its own `TaskQueueTimeoutFactory`, // as the `TimeoutID` are not unique among sockets. // // This class must outlive any created Timeout that it has created. Note that // the `DcSctpSocket` will ensure that all Timeouts are deleted when the socket // is destructed, so this means that this class must outlive the `DcSctpSocket`. // // This class, and the timeouts created it, are not thread safe. class TaskQueueTimeoutFactory { … }; } // namespace dcsctp #endif // NET_DCSCTP_TIMER_TASK_QUEUE_TIMEOUT_H_