1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "net/quic/test_tools/quic_session_peer.h"
#include "base/stl_util.h"
#include "net/quic/quic_session.h"
#include "net/quic/reliable_quic_stream.h"
using std::map;
namespace net {
namespace test {
// static
QuicStreamId QuicSessionPeer::GetNextOutgoingStreamId(QuicSession* session) {
return session->GetNextOutgoingStreamId();
}
// static
void QuicSessionPeer::SetNextOutgoingStreamId(QuicSession* session,
QuicStreamId id) {
session->next_outgoing_stream_id_ = id;
}
// static
void QuicSessionPeer::SetMaxOpenIncomingStreams(QuicSession* session,
uint32_t max_streams) {
session->max_open_incoming_streams_ = max_streams;
}
// static
void QuicSessionPeer::SetMaxOpenOutgoingStreams(QuicSession* session,
uint32_t max_streams) {
session->max_open_outgoing_streams_ = max_streams;
}
// static
QuicCryptoStream* QuicSessionPeer::GetCryptoStream(QuicSession* session) {
return session->GetCryptoStream();
}
// static
QuicWriteBlockedList* QuicSessionPeer::GetWriteBlockedStreams(
QuicSession* session) {
return &session->write_blocked_streams_;
}
// static
ReliableQuicStream* QuicSessionPeer::GetOrCreateDynamicStream(
QuicSession* session,
QuicStreamId stream_id) {
return session->GetOrCreateDynamicStream(stream_id);
}
// static
map<QuicStreamId, QuicStreamOffset>&
QuicSessionPeer::GetLocallyClosedStreamsHighestOffset(QuicSession* session) {
return session->locally_closed_streams_highest_offset_;
}
// static
QuicSession::StreamMap& QuicSessionPeer::static_streams(QuicSession* session) {
return session->static_streams();
}
// static
QuicSession::StreamMap& QuicSessionPeer::dynamic_streams(QuicSession* session) {
return session->dynamic_streams();
}
// static
std::unordered_set<QuicStreamId>* QuicSessionPeer::GetDrainingStreams(
QuicSession* session) {
return &session->draining_streams_;
}
// static
bool QuicSessionPeer::IsStreamClosed(QuicSession* session, QuicStreamId id) {
DCHECK_NE(0u, id);
return session->IsClosedStream(id);
}
// static
bool QuicSessionPeer::IsStreamCreated(QuicSession* session, QuicStreamId id) {
DCHECK_NE(0u, id);
return ContainsKey(session->dynamic_streams(), id);
}
// static
bool QuicSessionPeer::IsStreamAvailable(QuicSession* session, QuicStreamId id) {
DCHECK_NE(0u, id);
return ContainsKey(session->available_streams_, id);
}
// static
bool QuicSessionPeer::IsStreamUncreated(QuicSession* session, QuicStreamId id) {
DCHECK_NE(0u, id);
if (id % 2 == session->next_outgoing_stream_id_ % 2) {
// locally-created stream.
return id >= session->next_outgoing_stream_id_;
} else {
// peer-created stream.
return id > session->largest_peer_created_stream_id_;
}
}
} // namespace test
} // namespace net
|