예제 #1
0
CONCURRENT_API int
ConcurrentContext_GenerateInt(ConcurrentContext *aContext)
{
    aContext->mGeneratorValue.uValue.mInt = 0;
    ConcurrentContext_Resume(aContext);
    return aContext->mGeneratorValue.uValue.mInt;
}
예제 #2
0
CONCURRENT_API const char *
ConcurrentContext_GenerateConstString(ConcurrentContext *aContext)
{
    aContext->mGeneratorValue.uValue.mConstString = NULL;
    ConcurrentContext_Resume(aContext);
    return aContext->mGeneratorValue.uValue.mConstString;
}
예제 #3
0
CONCURRENT_API void *
ConcurrentContext_GenerateVoidPtr(ConcurrentContext *aContext)
{
    aContext->mGeneratorValue.uValue.mVoidPtr = NULL;
    ConcurrentContext_Resume(aContext);
    return aContext->mGeneratorValue.uValue.mVoidPtr;
}
예제 #4
0
CONCURRENT_API unsigned long long
ConcurrentContext_GenerateULongLong(ConcurrentContext *aContext)
{
    aContext->mGeneratorValue.uValue.mULongLong = 0;
    ConcurrentContext_Resume(aContext);
    return aContext->mGeneratorValue.uValue.mULongLong;
}
예제 #5
0
CONCURRENT_API long
ConcurrentContext_GenerateLong(ConcurrentContext *aContext)
{
    aContext->mGeneratorValue.uValue.mLong = 0;
    ConcurrentContext_Resume(aContext);
    return aContext->mGeneratorValue.uValue.mLong;
}
예제 #6
0
CONCURRENT_API ConcurrentStatus
ConcurrentContext_Generate(ConcurrentContext *aContext, ConcurrentGeneratorValueType *outType)
{
    ConcurrentStatus status;
    status = ConcurrentContext_Resume(aContext);
    if (status != ConcurrentStatus_SUCCESS) {
        return status;
    }
    *outType = aContext->mGeneratorValue.mType;
    return ConcurrentStatus_SUCCESS;
}