|
|
|
|
@ -23,8 +23,6 @@ namespace AzNetworking
|
|
|
|
|
Delete
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class ITimeoutHandler;
|
|
|
|
|
|
|
|
|
|
//! @class TimeoutQueue
|
|
|
|
|
//! @brief class for managing timeout items.
|
|
|
|
|
class TimeoutQueue
|
|
|
|
|
@ -70,11 +68,6 @@ namespace AzNetworking
|
|
|
|
|
using TimeoutHandler = AZStd::function<TimeoutResult(TimeoutQueue::TimeoutItem&)>;
|
|
|
|
|
void UpdateTimeouts(const TimeoutHandler& timeoutHandler, int32_t maxTimeouts = -1);
|
|
|
|
|
|
|
|
|
|
//! Updates timeouts for all items, invokes timeout handlers if required.
|
|
|
|
|
//! @param timeoutHandler listener instance to call back on for timeouts
|
|
|
|
|
//! @param maxTimeouts the maximum number of timeouts to process before breaking iteration
|
|
|
|
|
void UpdateTimeouts(ITimeoutHandler& timeoutHandler, int32_t maxTimeouts = -1);
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
struct TimeoutQueueItem
|
|
|
|
|
@ -94,19 +87,6 @@ namespace AzNetworking
|
|
|
|
|
TimeoutItemMap m_timeoutItemMap;
|
|
|
|
|
TimeoutItemQueue m_timeoutItemQueue;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//! @class ITimeoutHandler
|
|
|
|
|
//! @brief interface class for managing timeout items.
|
|
|
|
|
class ITimeoutHandler
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
virtual ~ITimeoutHandler() = default;
|
|
|
|
|
|
|
|
|
|
//! Handler callback for timed out items.
|
|
|
|
|
//! @param item containing registered timeout details
|
|
|
|
|
//! @return ETimeoutResult for whether to re-register or discard the timeout params
|
|
|
|
|
virtual TimeoutResult HandleTimeout(TimeoutQueue::TimeoutItem& item) = 0;
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#include <AzNetworking/DataStructures/TimeoutQueue.inl>
|
|
|
|
|
|