- Main Page
- Classes
- Files
- Directories

- File List
- File Members

# fbxatomic.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_ATOMIC_H_
    00014 #define _FBXSDK_CORE_SYNC_ATOMIC_H_
    00015
    00016 #include <fbxsdk/fbxsdk_def.h>
    00017
    00018 #ifndef FBXSDK_ENV_WINRT
    00019
    00020 #include <fbxsdk/fbxsdk_nsbegin.h>
    00021
    00022 class FBXSDK_DLL FbxAtomOp
    00023 {
    00024 public:
    00025     static void         Inc(volatile FbxAtomic* pPtr);
    00026     static void         Dec(volatile FbxAtomic* pPtr);
    00027     static bool         Add(volatile FbxAtomic* pPtr, FbxAtomic pVal);
    00028     static bool         Sub(volatile FbxAtomic* pPtr, FbxAtomic pVal);
    00029     static bool         And(volatile FbxAtomic* pPtr, FbxAtomic pVal);
    00030     static bool         Or(volatile FbxAtomic* pPtr, FbxAtomic pVal);
    00031     static bool         Nand(volatile FbxAtomic* pPtr, FbxAtomic pVal);
    00032     static bool         Xor(volatile FbxAtomic* pPtr, FbxAtomic pVal);
    00033     static bool         CompareAndSwap(volatile FbxAtomic* pPtr, FbxAtomic pOld, FbxAtomic pSwap);
    00034     static FbxAtomic    TestAndSet(volatile FbxAtomic* pPtr);
    00035     static FbxAtomic    FetchAndSwap(volatile FbxAtomic* pPtr, FbxAtomic pSwap);
    00036     static FbxAtomic    FetchAndInc(volatile FbxAtomic* pPtr);
    00037     static FbxAtomic    FetchAndDec(volatile FbxAtomic* pPtr);
    00038     static FbxAtomic    FetchAndAdd(volatile FbxAtomic* pPtr, FbxAtomic pVal);
    00039     static FbxAtomic    FetchAndSub(volatile FbxAtomic* pPtr, FbxAtomic pVal);
    00040     static FbxAtomic    FetchAndOr(volatile FbxAtomic* pPtr, FbxAtomic pVal);
    00041     static FbxAtomic    FetchAndAnd(volatile FbxAtomic* pPtr, FbxAtomic pVal);
    00042     static FbxAtomic    FetchAndXor(volatile FbxAtomic* pPtr, FbxAtomic pVal);
    00043     static FbxAtomic    FetchAndNand(volatile FbxAtomic* pPtr, FbxAtomic pVal);
    00044     static FbxAtomic    IncAndFetch(volatile FbxAtomic* pPtr);
    00045     static FbxAtomic    DecAndFetch(volatile FbxAtomic* pPtr);
    00046     static FbxAtomic    AddAndFetch(volatile FbxAtomic* pPtr, FbxAtomic pVal);
    00047     static FbxAtomic    SubAndFetch(volatile FbxAtomic* pPtr, FbxAtomic pVal);
    00048     static FbxAtomic    OrAndFetch(volatile FbxAtomic* pPtr, FbxAtomic pVal);
    00049     static FbxAtomic    AndAndFetch(volatile FbxAtomic* pPtr, FbxAtomic pVal);
    00050     static FbxAtomic    XorAndFetch(volatile FbxAtomic* pPtr, FbxAtomic pVal);
    00051     static FbxAtomic    NandAndFetch(volatile FbxAtomic* pPtr, FbxAtomic pVal);
    00052 };
    00053
    00054 #include <fbxsdk/fbxsdk_nsend.h>
    00055
    00056 #endif /* !FBXSDK_ENV_WINRT */
    00057
    00058 #endif /* _FBXSDK_CORE_SYNC_ATOMIC_H_ */