OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "net/base/test_completion_callback.h" | 5 #include "net/base/test_completion_callback.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
(...skipping 13 matching lines...) Expand all Loading... |
24 DCHECK(!waiting_for_result_); | 24 DCHECK(!waiting_for_result_); |
25 while (!have_result_) { | 25 while (!have_result_) { |
26 waiting_for_result_ = true; | 26 waiting_for_result_ = true; |
27 base::MessageLoop::current()->Run(); | 27 base::MessageLoop::current()->Run(); |
28 waiting_for_result_ = false; | 28 waiting_for_result_ = false; |
29 } | 29 } |
30 have_result_ = false; // Auto-reset for next callback. | 30 have_result_ = false; // Auto-reset for next callback. |
31 } | 31 } |
32 | 32 |
33 TestCompletionCallbackBaseInternal::TestCompletionCallbackBaseInternal() | 33 TestCompletionCallbackBaseInternal::TestCompletionCallbackBaseInternal() |
34 : have_result_(false), | 34 : have_result_(false), waiting_for_result_(false) { |
35 waiting_for_result_(false) { | |
36 } | 35 } |
37 | 36 |
38 } // namespace internal | 37 } // namespace internal |
39 | 38 |
40 TestCompletionCallback::TestCompletionCallback() | 39 TestCompletionCallback::TestCompletionCallback() |
41 : callback_(base::Bind(&TestCompletionCallback::SetResult, | 40 : callback_(base::Bind(&TestCompletionCallback::SetResult, |
42 base::Unretained(this))) { | 41 base::Unretained(this))) { |
43 } | 42 } |
44 | 43 |
45 TestCompletionCallback::~TestCompletionCallback() { | 44 TestCompletionCallback::~TestCompletionCallback() { |
46 } | 45 } |
47 | 46 |
48 TestInt64CompletionCallback::TestInt64CompletionCallback() | 47 TestInt64CompletionCallback::TestInt64CompletionCallback() |
49 : callback_(base::Bind(&TestInt64CompletionCallback::SetResult, | 48 : callback_(base::Bind(&TestInt64CompletionCallback::SetResult, |
50 base::Unretained(this))) { | 49 base::Unretained(this))) { |
51 } | 50 } |
52 | 51 |
53 TestInt64CompletionCallback::~TestInt64CompletionCallback() { | 52 TestInt64CompletionCallback::~TestInt64CompletionCallback() { |
54 } | 53 } |
55 | 54 |
56 ReleaseBufferCompletionCallback::ReleaseBufferCompletionCallback( | 55 ReleaseBufferCompletionCallback::ReleaseBufferCompletionCallback( |
57 IOBuffer* buffer) : buffer_(buffer) { | 56 IOBuffer* buffer) |
| 57 : buffer_(buffer) { |
58 } | 58 } |
59 | 59 |
60 ReleaseBufferCompletionCallback::~ReleaseBufferCompletionCallback() { | 60 ReleaseBufferCompletionCallback::~ReleaseBufferCompletionCallback() { |
61 } | 61 } |
62 | 62 |
63 void ReleaseBufferCompletionCallback::SetResult(int result) { | 63 void ReleaseBufferCompletionCallback::SetResult(int result) { |
64 if (!buffer_->HasOneRef()) | 64 if (!buffer_->HasOneRef()) |
65 result = net::ERR_FAILED; | 65 result = net::ERR_FAILED; |
66 TestCompletionCallback::SetResult(result); | 66 TestCompletionCallback::SetResult(result); |
67 } | 67 } |
68 | 68 |
69 } // namespace net | 69 } // namespace net |
OLD | NEW |