Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(144)

Side by Side Diff: remoting/protocol/quic_channel.h

Issue 1493083002: Remove QUIC support from remoting host and client. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « remoting/protocol/jingle_session_unittest.cc ('k') | remoting/protocol/quic_channel.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef REMOTING_PROTOCOL_QUIC_CHANNEL_H_
6 #define REMOTING_PROTOCOL_QUIC_CHANNEL_H_
7
8 #include "net/quic/p2p/quic_p2p_stream.h"
9 #include "remoting/base/compound_buffer.h"
10 #include "remoting/protocol/p2p_stream_socket.h"
11
12 namespace net {
13 class DrainableIOBuffer;
14 } // namespace net
15
16 namespace remoting {
17 namespace protocol {
18
19 // QuicChannel implements P2PStreamSocket interface for a QuicP2PStream.
20 class QuicChannel : public net::QuicP2PStream::Delegate,
21 public P2PStreamSocket {
22 public:
23 QuicChannel(net::QuicP2PStream* stream,
24 const base::Closure& on_destroyed_callback);
25 ~QuicChannel() override;
26
27 const std::string& name() { return name_; }
28
29 // P2PStreamSocket interface.
30 int Read(const scoped_refptr<net::IOBuffer>& buffer,
31 int buffer_len,
32 const net::CompletionCallback& callback) override;
33 int Write(const scoped_refptr<net::IOBuffer>& buffer,
34 int buffer_len,
35 const net::CompletionCallback& callback) override;
36
37 protected:
38 void SetName(const std::string& name);
39
40 // Owned by QuicSession.
41 net::QuicP2PStream* stream_;
42
43 private:
44 // net::QuicP2PStream::Delegate interface.
45 void OnDataReceived(const char* data, int length) override;
46 void OnClose(net::QuicErrorCode error) override;
47
48 base::Closure on_destroyed_callback_;
49
50 std::string name_;
51
52 CompoundBuffer data_received_;
53
54 net::CompletionCallback read_callback_;
55 scoped_refptr<net::IOBuffer> read_buffer_;
56 int read_buffer_size_ = 0;
57
58 int error_ = 0;
59
60 DISALLOW_COPY_AND_ASSIGN(QuicChannel);
61 };
62
63 // Client side of a channel. Sends the |name| specified in the constructor to
64 // the peer.
65 class QuicClientChannel : public QuicChannel {
66 public:
67 QuicClientChannel(net::QuicP2PStream* stream,
68 const base::Closure& on_destroyed_callback,
69 const std::string& name);
70 ~QuicClientChannel() override;
71
72 private:
73 DISALLOW_COPY_AND_ASSIGN(QuicClientChannel);
74 };
75
76 // Host side of a channel. Receives name from the peer after ReceiveName is
77 // called. Read() can be called only after the name is received.
78 class QuicServerChannel : public QuicChannel {
79 public:
80 QuicServerChannel(net::QuicP2PStream* stream,
81 const base::Closure& on_destroyed_callback);
82 ~QuicServerChannel() override;
83
84 // Must be called after the constructor to receive channel name.
85 // |name_received_callback| must use QuicChannel::name() to get the name.
86 // Empty name() indicates failure to receive it.
87 void ReceiveName(const base::Closure& name_received_callback);
88
89 private:
90 void OnNameSizeReadResult(int result);
91 void ReadNameLoop(int result);
92 void OnNameReadResult(int result);
93
94 base::Closure name_received_callback_;
95 uint8_t name_length_ = 0;
96 scoped_refptr<net::DrainableIOBuffer> name_read_buffer_;
97
98 DISALLOW_COPY_AND_ASSIGN(QuicServerChannel);
99 };
100
101 } // namespace protocol
102 } // namespace remoting
103
104 #endif // REMOTING_PROTOCOL_QUIC_CHANNEL_H_
OLDNEW
« no previous file with comments | « remoting/protocol/jingle_session_unittest.cc ('k') | remoting/protocol/quic_channel.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698