blob: f2709789e446b1562b026eeaa94efb151897a04c [file] [log] [blame]
niklase@google.com77ae29b2011-05-30 11:22:19 +00001#ifndef MODULE_H
2#define MODULE_H
3
4#include "typedefs.h"
5
6namespace webrtc
7{
8
9class Module
10{
11public:
12 // Returns version of the module and its components.
13 virtual int32_t Version(char* version,
14 uint32_t& remainingBufferInBytes,
15 uint32_t& position) const = 0;
16
17 // Change the unique identifier of this object.
18 virtual int32_t ChangeUniqueId(const int32_t id) = 0;
19
20 // Returns the number of milliseconds until the module want a worker
21 // thread to call Process.
22 virtual int32_t TimeUntilNextProcess() = 0 ;
23
24 // Process any pending tasks such as timeouts.
25 virtual int32_t Process() = 0 ;
26
27protected:
28 virtual ~Module() {}
29};
30
31} // namespace webrtc
32
33#endif // MODULE_H