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

Side by Side Diff: remoting/host/ack_or_timeout_reporter.h

Issue 719983002: Reporting of policy errors via host-offline-reason: part 3 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@hor-nohoststatussender
Patch Set: Rebasing... Created 6 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
OLDNEW
(Empty)
1 // Copyright 2014 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_HOST_ACK_OR_TIMEOUT_REPORTER_H_
6 #define REMOTING_HOST_ACK_OR_TIMEOUT_REPORTER_H_
7
8 #include "base/callback.h"
9 #include "base/sequenced_task_runner.h"
10 #include "base/time/time.h"
11
12 namespace remoting {
13
14 enum AckOrTimeout {
15 Ack,
16 Timeout
17 };
18
19 // ReportAckOrTimeout will call |ack_or_timeout_callback|, when either
20 // |ack_callback| is called or when |timeout| has been reached. This
21 // is helpful to add timeout functionality to a function that supports
22 // acking, but doesn't support timeouts.
23 //
24 // As a consequence of using WeakPtr as an implementation detail,
25 // ReportAckOrTimeout requires its caller to make sure that:
26 // - ReportAckOfTimeout is called on |sequenced_task_runner|
27 // - If called, then |ack_callback| will be called on |sequenced_task_runner|
28 //
29 // ReportAckOrTimeout guarantees that:
30 // - |function_that_acks| will be called synchronously (i.e. caller
31 // can destroy |function_that_acks| and/or its base::Unretained
32 // arguments as soon as ReportAckOrTimeout returns).
33 // - |ack_or_timeout_callback| will be called exactly once.
34 // - |ack_or_timeout_callback| will be called via |sequenced_task_runner|.
35 // - All references (i.e. ref-counted arguments) to |ack_or_timeout_callback|
36 // will be dropped after it is called.
37 void ReportAckOrTimeout(
38 const base::Callback<void(const base::Closure& ack_callback)>
39 function_that_acks,
Lambros 2014/12/03 03:20:25 nit: This should be indented +4 from previous line
40 const base::TimeDelta& timeout,
41 scoped_refptr<base::SequencedTaskRunner> sequenced_task_runner,
42 const base::Callback<void(AckOrTimeout ack_or_timeout)>
43 ack_or_timeout_callback);
Lambros 2014/12/03 03:20:25 nit: Indentation
44
45 } // namespace remoting
46
47 #endif // REMOTING_HOST_ACK_OR_TIMEOUT_REPORTER_H_
OLDNEW
« no previous file with comments | « no previous file | remoting/host/ack_or_timeout_reporter.cc » ('j') | remoting/host/ack_or_timeout_reporter.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698