Remove LiveTV menu.
[vuplus_xbmc] / xbmc / threads / platform / README.platform
1
2 In order to port xbmc to an unsupported platform, the threading model
3 needs to replace the following classes:
4
5 -------------------------------------------------------------------------
6 CCriticalSection
7 -------------------------------------------------------------------------
8
9 CCriticalSection - must implement the "CountingLockable" concept:
10    void lock();
11    bool try_lock();
12    void unlock();
13    unsigned int exit();
14    void restore(unsigned int);
15
16 The "CountingLockable" concept implies a RECURSIVE Lockable.
17
18 There is a "CountingLockable" template which can be used to facilitate this
19 implementation from something that implements the "Lockable" concept:
20    void lock();
21    bool try_lock();
22    void unlock();
23
24 using:
25    class CCriticalSection : public CountingLockable<PlatformSpecificLocakable> {};
26
27
28 -------------------------------------------------------------------------
29 ThreadLocal
30 -------------------------------------------------------------------------
31
32 ThreadLocal - must be a template<class T> that implements the "ThreadLocal" concept:
33    void set(T* val);
34    T* get();
35
36 currently there is no need for a facility to define a cleanup function and if
37 destructors are automatically called by the underlying implementation this
38 behavior must be blocked (such is the case with boost).
39
40 -------------------------------------------------------------------------
41 ConditionVariable
42 -------------------------------------------------------------------------
43
44 ConditionVariable - must be implemented to handle a ConditionVariable concept:
45
46    tempalte <class L> WaitResponse wait(L& lock);
47    tempalte <class L> WaitResponse wait(L& lock, int milliseconds);
48    void notifyAll();
49    void notify();
50
51 where L is a typename template variable that must satisfy Lockable concept 
52 defined above.