Simplify QuicConnectionHelper by introducing a new QuicAlarm class
that encapsulates the platform-specific alarm setting/canceling
functionality. This moves all the various alarm definition/management
code from QuicConnectionHelper to QuicConnection. Since there are
Chrome and GFE implementations of the helper, this reduces the
risk of implementation-specific bugs, like the recent Chrome
SendAlarm bug.
Merge internal change: 50513435
BUG=
Review URL: https://chromiumcodereview.appspot.com/22545005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@216754 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/net/quic/test_tools/quic_test_utils.cc b/net/quic/test_tools/quic_test_utils.cc
index 5d1b3a0..810abdc 100644
--- a/net/quic/test_tools/quic_test_utils.cc
+++ b/net/quic/test_tools/quic_test_utils.cc
@@ -23,6 +23,20 @@
namespace net {
namespace test {
+namespace {
+
+// No-op alarm implementation used by MockHelper.
+class TestAlarm : public QuicAlarm {
+ public:
+ explicit TestAlarm(QuicAlarm::Delegate* delegate)
+ : QuicAlarm(delegate) {
+ }
+
+ virtual void SetImpl() OVERRIDE {}
+ virtual void CancelImpl() OVERRIDE {}
+};
+
+} // namespace
MockFramerVisitor::MockFramerVisitor() {
// By default, we want to accept packets.
@@ -181,6 +195,10 @@
return &random_generator_;
}
+QuicAlarm* MockHelper::CreateAlarm(QuicAlarm::Delegate* delegate) {
+ return new TestAlarm(delegate);
+}
+
void MockHelper::AdvanceTime(QuicTime::Delta delta) {
clock_.AdvanceTime(delta);
}