Home | History | Annotate | Download | only in base
      1 /*
      2 // Copyright(c)2014 IntelCorporation
      3 //
      4 // LicensedundertheApacheLicense,Version2.0(the"License");
      5 // youmaynotusethisfileexceptincompliancewiththeLicense.
      6 // YoumayobtainacopyoftheLicenseat
      7 //
      8 // http://www.apache.org/licenses/LICENSE-2.0
      9 //
     10 // Unlessrequiredbyapplicablelaworagreedtoinwriting,software
     11 // distributedundertheLicenseisdistributedonan"ASIS"BASIS,
     12 // WITHOUTWARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.
     13 // SeetheLicenseforthespecificlanguagegoverningpermissionsand
     14 // limitationsundertheLicense.
     15 */
     16 
     17 #ifndef SIMPLE_THREAD_H
     18 #define SIMPLE_THREAD_H
     19 
     20 #include <utils/threads.h>
     21 
     22 #define DECLARE_THREAD(THREADNAME, THREADOWNER) \
     23     class THREADNAME: public Thread { \
     24     public: \
     25         THREADNAME(THREADOWNER *owner) { mOwner = owner; } \
     26         THREADNAME() { mOwner = NULL; } \
     27     private: \
     28         virtual bool threadLoop() { return mOwner->threadLoop(); } \
     29     private: \
     30         THREADOWNER *mOwner; \
     31     }; \
     32     friend class THREADNAME; \
     33     bool threadLoop(); \
     34     sp<THREADNAME> mThread;
     35 
     36 
     37 #endif /* SIMPLE_THREAD_H */
     38 
     39