150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/******************************************************************** 250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * COPYRIGHT: 350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * Copyright (c) 1997-2009, International Business Machines Corporation and 450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * others. All Rights Reserved. 550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho ********************************************************************/ 650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#ifndef SIMPLETHREAD_H 850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#define SIMPLETHREAD_H 950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 1050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#include "mutex.h" 1150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 1250294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehoclass U_EXPORT SimpleThread 1350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho{ 1450294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehopublic: 1550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho SimpleThread(); 1650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho virtual ~SimpleThread(); 1750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho int32_t start(void); // start the thread 1850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho UBool isRunning(); // return true if a started thread has exited. 1950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 2050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho virtual void run(void) = 0; // Override this to provide the code to run 2150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho // in the thread. 2250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho void *fImplementation; 2350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 2450294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehopublic: 2550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho static void sleep(int32_t millis); // probably shouldn't go here but oh well. 2650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho static void errorFunc(); // Empty function, provides a single convenient place 2750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho // to break on errors. 2850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho}; 2950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 3050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#endif 3150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 32