
The methodology used to generate this CL is documented in https://crbug.com/1098010#c95. No-Try: true Bug: 1098010 Change-Id: I26884c98578ee1ba4d7708ace5b25d1df5c0e576 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3895939 Owners-Override: Avi Drissman <avi@chromium.org> Commit-Queue: Mark Mentovai <mark@chromium.org> Reviewed-by: Mark Mentovai <mark@chromium.org> Auto-Submit: Avi Drissman <avi@chromium.org> Cr-Commit-Position: refs/heads/main@{#1047098}
44 lines
1.6 KiB
C++
44 lines
1.6 KiB
C++
// Copyright 2015 The Chromium Authors
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#ifndef NET_SOCKET_SOCKET_PERFORMANCE_WATCHER_H_
|
|
#define NET_SOCKET_SOCKET_PERFORMANCE_WATCHER_H_
|
|
|
|
#include "net/base/net_export.h"
|
|
|
|
namespace base {
|
|
class TimeDelta;
|
|
} // namespace base
|
|
|
|
namespace net {
|
|
|
|
// SocketPerformanceWatcher is the base class for recording and aggregating
|
|
// per-socket statistics. SocketPerformanceWatcher must be used on a single
|
|
// thread.
|
|
class NET_EXPORT_PRIVATE SocketPerformanceWatcher {
|
|
public:
|
|
virtual ~SocketPerformanceWatcher() = default;
|
|
|
|
// Returns true if |this| SocketPerformanceWatcher is interested in receiving
|
|
// an updated RTT estimate (via OnUpdatedRTTAvailable).
|
|
virtual bool ShouldNotifyUpdatedRTT() const = 0;
|
|
|
|
// Notifies |this| SocketPerformanceWatcher of updated transport layer RTT
|
|
// from this device to the remote transport layer endpoint. This method is
|
|
// called immediately after the observation is made, hence no timestamp.
|
|
// There is no guarantee that OnUpdatedRTTAvailable will be called every time
|
|
// an updated RTT is available as the socket may throttle the
|
|
// OnUpdatedRTTAvailable call for various reasons, including performance.
|
|
virtual void OnUpdatedRTTAvailable(const base::TimeDelta& rtt) = 0;
|
|
|
|
// Notifies that |this| watcher will be reused to watch a socket that belongs
|
|
// to a different transport layer connection. Note: The new connection shares
|
|
// the same protocol as the previously watched socket.
|
|
virtual void OnConnectionChanged() = 0;
|
|
};
|
|
|
|
} // namespace net
|
|
|
|
#endif // NET_SOCKET_SOCKET_PERFORMANCE_WATCHER_H_
|