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

Side by Side Diff: webrtc/modules/interface/module.h

Issue 1414793020: Remove interface directories kept to avoid breaking downstream. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years, 1 month 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 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11 #ifndef WEBRTC_MODULES_INCLUDE_MODULE_H_
12 #define WEBRTC_MODULES_INCLUDE_MODULE_H_
13
14 #pragma message("WARNING: webrtc/modules/include is DEPRECATED; use webrtc/modul es/include")
15
16 #include "webrtc/typedefs.h"
17
18 namespace webrtc {
19
20 class ProcessThread;
21
22 class Module {
23 public:
24 // Returns the number of milliseconds until the module wants a worker
25 // thread to call Process.
26 // This method is called on the same worker thread as Process will
27 // be called on.
28 // TODO(tommi): Almost all implementations of this function, need to know
29 // the current tick count. Consider passing it as an argument. It could
30 // also improve the accuracy of when the next callback occurs since the
31 // thread that calls Process() will also have it's tick count reference
32 // which might not match with what the implementations use.
33 virtual int64_t TimeUntilNextProcess() = 0;
34
35 // Process any pending tasks such as timeouts.
36 // Called on a worker thread.
37 virtual int32_t Process() = 0;
38
39 // This method is called when the module is attached to a *running* process
40 // thread or detached from one. In the case of detaching, |process_thread|
41 // will be nullptr.
42 //
43 // This method will be called in the following cases:
44 //
45 // * Non-null process_thread:
46 // * ProcessThread::RegisterModule() is called while the thread is running.
47 // * ProcessThread::Start() is called and RegisterModule has previously
48 // been called. The thread will be started immediately after notifying
49 // all modules.
50 //
51 // * Null process_thread:
52 // * ProcessThread::DeRegisterModule() is called while the thread is
53 // running.
54 // * ProcessThread::Stop() was called and the thread has been stopped.
55 //
56 // NOTE: This method is not called from the worker thread itself, but from
57 // the thread that registers/deregisters the module or calls Start/Stop.
58 virtual void ProcessThreadAttached(ProcessThread* process_thread) {}
59
60 protected:
61 virtual ~Module() {}
62 };
63
64 // Reference counted version of the Module interface.
65 class RefCountedModule : public Module {
66 public:
67 // Increase the reference count by one.
68 // Returns the incremented reference count.
69 virtual int32_t AddRef() const = 0;
70
71 // Decrease the reference count by one.
72 // Returns the decreased reference count.
73 // Returns 0 if the last reference was just released.
74 // When the reference count reaches 0 the object will self-destruct.
75 virtual int32_t Release() const = 0;
76
77 protected:
78 ~RefCountedModule() override = default;
79 };
80
81 } // namespace webrtc
82
83 #endif // WEBRTC_MODULES_INCLUDE_MODULE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698