00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef _SK_RT_THREAD_GENERIC_H_
00012 #define _SK_RT_THREAD_GENERIC_H_
00013
00014 #include <sk/util/Object.h>
00015 #include <sk/rt/thread/State.h>
00016 #include <sk/rt/thread/Exit.h>
00017
00018 namespace sk {
00019 namespace rt {
00020 namespace thread {
00021 class Generic
00022 : public virtual sk::util::Object
00023 {
00024 public:
00025 virtual void start() = 0;
00026 virtual void stop() = 0;
00027 virtual void join() = 0;
00028 virtual void detach() = 0;
00029 virtual void interrupt() = 0;
00030
00031 virtual const sk::util::String getName() const = 0;
00032 virtual const sk::rt::thread::State& getState() const = 0;
00033
00034 virtual bool isAlive() const = 0;
00035 virtual bool isInterrupted() const = 0;
00036 virtual bool isException() const = 0;
00037 virtual bool isExited() const = 0;
00038 virtual int exitStatus() const = 0;
00039
00040 virtual bool isMain() const = 0;
00041 virtual bool isService() const = 0;
00042 virtual bool isRegular() const = 0;
00043 virtual bool isDetached() const = 0;
00044 };
00045 }
00046 }
00047 }
00048
00049 #endif