fbxthread.h

Go to the documentation of this file.
00001 /****************************************************************************************
00002  
00003    Copyright (C) 2013 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 #ifndef FBXSDK_ENV_WINRT
00019 
00020 #include <fbxsdk/fbxsdk_nsbegin.h>
00021 
00022 class FbxThreadImpl;
00023 
00025 typedef void (*FbxThreadProc)(void*);
00026 
00029 class FBXSDK_DLL FbxThread
00030 {
00031 public:
00032     enum EState {eUnknown, eRunning, eDead};
00033     enum EPriority {eNone, eIdle, eLowest, eLow, eNormal, eHigh, eHighest, eRealTime};
00034 
00040     FbxThread(FbxThreadProc pProc, void* pArg, bool pSuspend=false);
00041 
00048     FbxThread(FbxThreadProc pProc, void* pArg, EPriority pPriority, bool pSuspend=false);
00049 
00051     virtual ~FbxThread();
00052 
00058     bool Suspend();
00059 
00063     bool Resume();
00064 
00068     bool Join();
00069 
00073     bool Kill();
00074 
00078     EPriority GetPriority();
00079 
00084     bool SetPriority(EPriority pPriority);
00085 
00089     EState GetState();
00090 
00091 private:
00092     FbxThreadImpl* mImpl;
00093 };
00094 
00095 #include <fbxsdk/fbxsdk_nsend.h>
00096 
00097 #endif /* !FBXSDK_ENV_WINRT */
00098 
00099 #endif /* _FBXSDK_CORE_SYNC_THREAD_H_ */