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

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: Extracted kHostOfflineReasonTimeoutSeconds constant. 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_forward.h"
9 #include "base/sequenced_task_runner.h"
10
11 namespace base {
12 class TimeDelta;
13 }
14
15 namespace remoting {
16
17 enum AckOrTimeout { Ack, Timeout };
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(
Sergey Ulanov 2014/12/15 22:39:19 Can this be replaced with something like CreateCal
Łukasz Anforowicz 2014/12/16 00:59:52 I am working on removing ack_or_timeout_reporter*.
38 const base::Callback<void(const base::Closure& ack_callback)>&
39 function_that_acks,
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);
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/minimum_heartbeat_supporter.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698