RegistrarThread class, which is the base class for threads

spawned in the registrar.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1265 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Tyler Dauwalder
2002-09-29 07:01:43 +00:00
parent 36cfa7d4f8
commit cd7adc0b06
2 changed files with 156 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
//----------------------------------------------------------------------
// This software is part of the OpenBeOS distribution and is covered
// by the OpenBeOS license.
//---------------------------------------------------------------------
/*!
\file RegistrarThread.h
RegistrarThread interface declaration
*/
#ifndef REGISTRAR_THREAD_H
#define REGISTRAR_THREAD_H
#include <Messenger.h>
#include <OS.h>
class RegistrarThread {
public:
RegistrarThread(const char *name, int32 priority, BMessenger managerMessenger);
virtual ~RegistrarThread();
virtual status_t InitCheck();
status_t Run();
thread_id Id() const;
const char* Name() const;
void AskToExit();
bool IsFinished() const;
protected:
//! The function executed in the object's thread when Run() is called
virtual status_t ThreadFunction() = 0;
BMessenger fManagerMessenger;
bool fShouldExit; // Initially false, may be set to true by AskToExit()
bool fIsFinished; // Initially false, set to true by the thread itself upon completion
private:
static int32 EntryFunction(void *data);
status_t fStatus;
thread_id fId; // Initially -1, to be set prior to thread execution and neverafter changed
char fName[B_OS_NAME_LENGTH];
};
#endif // REGISTRAR_THREAD_H