fbxsdk/core/sync/fbxthread.h Source File
 
 
 
fbxsdk/core/sync/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_ */