Chromium Code Reviews| Index: blimp/client/core/blimp_client_context_impl.cc |
| diff --git a/blimp/client/core/blimp_client_context_impl.cc b/blimp/client/core/blimp_client_context_impl.cc |
| index 076fc78f34ea64ed7f5f8af03e5d9688d9169896..a42cdf38a93f980992b7c081c43aaa7c1db38f6a 100644 |
| --- a/blimp/client/core/blimp_client_context_impl.cc |
| +++ b/blimp/client/core/blimp_client_context_impl.cc |
| @@ -19,24 +19,34 @@ |
| namespace blimp { |
| namespace client { |
| +namespace { |
| +const char kDefaultAssignerUrl[] = |
| + "https://blimp-pa.googleapis.com/v1/assignment"; |
| +} // namespace |
| + |
| // This function is declared in //blimp/client/public/blimp_client_context.h, |
| // and either this function or the one in |
| // //blimp/client/core/dummy_blimp_client_context.cc should be linked in to |
| // any binary using BlimpClientContext::Create. |
| // static |
| BlimpClientContext* BlimpClientContext::Create( |
| - scoped_refptr<base::SingleThreadTaskRunner> io_thread_task_runner) { |
| + scoped_refptr<base::SingleThreadTaskRunner> io_thread_task_runner, |
| + scoped_refptr<base::SingleThreadTaskRunner> file_thread_task_runner) { |
| #if defined(OS_ANDROID) |
| - return new BlimpClientContextImplAndroid(io_thread_task_runner); |
| + return new BlimpClientContextImplAndroid(io_thread_task_runner, |
| + file_thread_task_runner); |
| #else |
| - return new BlimpClientContextImpl(io_thread_task_runner); |
| + return new BlimpClientContextImpl(io_thread_task_runner, |
| + file_thread_task_runner); |
| #endif // defined(OS_ANDROID) |
| } |
| BlimpClientContextImpl::BlimpClientContextImpl( |
| - scoped_refptr<base::SingleThreadTaskRunner> io_thread_task_runner) |
| + scoped_refptr<base::SingleThreadTaskRunner> io_thread_task_runner, |
| + scoped_refptr<base::SingleThreadTaskRunner> file_thread_task_runner) |
| : BlimpClientContext(), |
| io_thread_task_runner_(io_thread_task_runner), |
| + file_thread_task_runner_(file_thread_task_runner), |
| weak_factory_(this) { |
| blimp_connection_statistics_ = new BlimpConnectionStatistics(); |
| net_components_.reset(new ClientNetworkComponents( |
| @@ -71,9 +81,48 @@ std::unique_ptr<BlimpContents> BlimpClientContextImpl::CreateBlimpContents() { |
| return blimp_contents; |
| } |
| +void BlimpClientContextImpl::Connect(const std::string& client_auth_token) { |
| + if (!assignment_source_) { |
| + assignment_source_.reset(new AssignmentSource( |
| + GetAssignerURL(), io_thread_task_runner_, file_thread_task_runner_)); |
| + } |
| + |
| + VLOG(1) << "Trying to get assignment."; |
| + assignment_source_->GetAssignment( |
| + client_auth_token, |
| + base::Bind(&BlimpClientContextImpl::ConnectWithAssignment, |
| + weak_factory_.GetWeakPtr())); |
| +} |
| + |
| void BlimpClientContextImpl::OnConnected() {} |
| void BlimpClientContextImpl::OnDisconnected(int result) {} |
| +GURL BlimpClientContextImpl::GetAssignerURL() { |
| + return GURL(kDefaultAssignerUrl); |
| +} |
| + |
| +void BlimpClientContextImpl::ConnectWithAssignment( |
| + AssignmentSource::Result result, |
| + const Assignment& assignment) { |
| + OnAssignmentConnectionAttempted(result, assignment); |
| + |
| + if (result != AssignmentSource::Result::RESULT_OK) { |
| + LOG(ERROR) << "Assignment failed, reason: " << result; |
| + return; |
| + } |
| + |
| + VLOG(1) << "Assignment succeeded"; |
|
Kevin M
2016/08/04 17:44:17
How about VLOGging all result values at the top?
nyquist
2016/08/05 21:22:38
Done.
|
| + |
| + io_thread_task_runner_->PostTask( |
| + FROM_HERE, |
| + base::Bind(&ClientNetworkComponents::ConnectWithAssignment, |
| + base::Unretained(net_components_.get()), assignment)); |
| +} |
| + |
| +void BlimpClientContextImpl::OnAssignmentConnectionAttempted( |
|
David Trainor- moved to gerrit
2016/08/04 16:15:51
Should this actually hit the native delegate?
|
| + AssignmentSource::Result result, |
| + const Assignment& assignment) {} |
| + |
| } // namespace client |
| } // namespace blimp |