fbxthread.h

Go to the documentation of this file.
00001 /****************************************************************************************
00002  
00003    Copyright (C) 2012 Autodesk, Inc.
00004    All rights reserved.
00005  
00006    Use of this software is subject to the terms of the Autodesk license agreement
00007    provided at the time of installation or download, or which otherwise accompanies
00008    this software in either electronic or hard copy form.
00009  
00010 ****************************************************************************************/
00011 
00013 #ifndef _FBXSDK_CORE_SYNC_THREAD_H_
00014 #define _FBXSDK_CORE_SYNC_THREAD_H_
00015 
00016 #include <fbxsdk/fbxsdk_def.h>
00017 
00018 #include <fbxsdk/fbxsdk_nsbegin.h>
00019 
00020 class FbxThreadImpl;
00021 
00023 typedef void (*FbxThreadProc)(void*);
00024 
00027 class FBXSDK_DLL FbxThread
00028 {
00029 public:
00030     enum EState {eUnknown, eRunning, eDead};
00031     enum EPriority {eNone, eIdle, eLowest, eLow, eNormal, eHigh, eHighest, eRealTime};
00032 
00038     FbxThread(FbxThreadProc pProc, void* pArg, bool pSuspend=false);
00039 
00046     FbxThread(FbxThreadProc pProc, void* pArg, EPriority pPriority, bool pSuspend=false);
00047 
00049     virtual ~FbxThread();
00050 
00056     bool Suspend();
00057 
00061     bool Resume();
00062 
00066     bool Join();
00067 
00071     bool Kill();
00072 
00076     EPriority GetPriority();
00077 
00082     bool SetPriority(EPriority pPriority);
00083 
00087     EState GetState();
00088 
00089 private:
00090     FbxThreadImpl* mImpl;
00091 };
00092 
00093 #include <fbxsdk/fbxsdk_nsend.h>
00094 
00095 #endif /* _FBXSDK_CORE_SYNC_THREAD_H_ */