aboutsummaryrefslogtreecommitdiff
path: root/src/modules/interface/module.h
blob: f2709789e446b1562b026eeaa94efb151897a04c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#ifndef MODULE_H
#define MODULE_H

#include "typedefs.h"

namespace webrtc
{

class Module
{
public:
    // Returns version of the module and its components.
    virtual int32_t Version(char* version,
                            uint32_t& remainingBufferInBytes,
                            uint32_t& position) const = 0;

    // Change the unique identifier of this object.
    virtual int32_t ChangeUniqueId(const int32_t id) = 0;

    // Returns the number of milliseconds until the module want a worker
    // thread to call Process.
    virtual int32_t TimeUntilNextProcess() = 0 ;

    // Process any pending tasks such as timeouts.
    virtual int32_t Process() = 0 ;

protected:
    virtual ~Module() {}
};

} // namespace webrtc

#endif // MODULE_H