blob: 4db92a308a844b0ca87bb6e0e0e00c9450a68e70 [file] [log] [blame]
niklase@google.com470e71d2011-07-07 08:21:25 +00001/*
2 * Copyright (c) 2011 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_UTILITY_INTERFACE_PROCESS_THREAD_H_
12#define WEBRTC_MODULES_UTILITY_INTERFACE_PROCESS_THREAD_H_
13
pbos@webrtc.org8b062002013-07-12 08:28:10 +000014#include "webrtc/typedefs.h"
niklase@google.com470e71d2011-07-07 08:21:25 +000015
16namespace webrtc {
17class Module;
18
19class ProcessThread
20{
21public:
22 static ProcessThread* CreateProcessThread();
23 static void DestroyProcessThread(ProcessThread* module);
24
pbos@webrtc.orgc75102e2013-04-09 13:32:55 +000025 virtual int32_t Start() = 0;
26 virtual int32_t Stop() = 0;
niklase@google.com470e71d2011-07-07 08:21:25 +000027
henrike@webrtc.org79cf3ac2014-01-13 15:21:30 +000028 virtual int32_t RegisterModule(Module* module) = 0;
pbos@webrtc.orgc75102e2013-04-09 13:32:55 +000029 virtual int32_t DeRegisterModule(const Module* module) = 0;
niklase@google.com470e71d2011-07-07 08:21:25 +000030protected:
31 virtual ~ProcessThread();
32};
pbos@webrtc.orgd900e8b2013-07-03 15:12:26 +000033} // namespace webrtc
niklase@google.com470e71d2011-07-07 08:21:25 +000034#endif // WEBRTC_MODULES_UTILITY_INTERFACE_PROCESS_THREAD_H_