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

Side by Side Diff: net/quic/quartc/quartc_factory.cc

Issue 2324833004: Define Stable API for WebRTC/Quartc (Closed)
Patch Set: Patch Set 4 : Create QuartcFactory. Made modification on the API. Change the constructor of QuartcS… Created 4 years, 3 months 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
OLDNEW
(Empty)
1 // Copyright (c) 2016 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 #include "net/quic/quartc/quartc_factory.h"
6
7 #include "base/threading/thread_task_runner_handle.h"
8 #include "net/quic/quartc/quartc_alarm_factory.h"
9 #include "net/quic/quartc/quartc_connection_helper.h"
10 #include "net/quic/quartc/quartc_session.h"
11
12 namespace net {
13
14 QuartcFactory::QuartcFactory() {}
15 QuartcFactory::~QuartcFactory() {}
16
17 std::unique_ptr<QuartcSessionInterface> QuartcFactory::CreateQuartcSession(
18 const QuartcConfig& quartc_config) {
19 DCHECK(quartc_config.transport);
20
21 Perspective perspective =
22 quartc_config.is_server ? Perspective::IS_SERVER : Perspective::IS_CLIENT;
23 std::unique_ptr<QuicConnection> quic_connection =
24 CreateQuicConnection(quartc_config, perspective);
25 config_.reset(new QuicConfig);
skvlad-chromium 2016/09/23 19:09:42 Do you actually need to keep the config around? It
26 std::unique_ptr<QuartcSessionInterface> quartc_session(
27 new QuartcSession(std::move(quic_connection), *(config_.get()),
28 quartc_config.remote_fingerprint_value, perspective,
29 quartc_config.transport));
30 return quartc_session;
31 }
32
33 std::unique_ptr<QuicConnection> QuartcFactory::CreateQuicConnection(
34 const QuartcConfig& quartc_config,
35 Perspective perspective) {
36 // The QuicConnection will take ownership.
37 QuartcPacketWriter* writer = new QuartcPacketWriter(quartc_config.transport);
38 helper_.reset(new QuartcConnectionHelper);
39 alarm_factory_.reset(new QuartcAlarmFactory(
40 base::ThreadTaskRunnerHandle::Get().get(), helper_->GetClock()));
41 IPAddress ip(0, 0, 0, 0);
42 return std::unique_ptr<QuicConnection>(new QuicConnection(
43 0, IPEndPoint(ip, 0), helper_.get(), alarm_factory_.get(), writer,
44 true /*own the writer*/, perspective, AllSupportedVersions()));
45 }
46
47 std::unique_ptr<QuartcFactoryInterface> CreateQuartcFactory() {
48 return std::unique_ptr<QuartcFactoryInterface>(new QuartcFactory);
49 }
50
51 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698