CONCURRENT_API int ConcurrentContext_GenerateInt(ConcurrentContext *aContext) { aContext->mGeneratorValue.uValue.mInt = 0; ConcurrentContext_Resume(aContext); return aContext->mGeneratorValue.uValue.mInt; }
CONCURRENT_API const char * ConcurrentContext_GenerateConstString(ConcurrentContext *aContext) { aContext->mGeneratorValue.uValue.mConstString = NULL; ConcurrentContext_Resume(aContext); return aContext->mGeneratorValue.uValue.mConstString; }
CONCURRENT_API void * ConcurrentContext_GenerateVoidPtr(ConcurrentContext *aContext) { aContext->mGeneratorValue.uValue.mVoidPtr = NULL; ConcurrentContext_Resume(aContext); return aContext->mGeneratorValue.uValue.mVoidPtr; }
CONCURRENT_API unsigned long long ConcurrentContext_GenerateULongLong(ConcurrentContext *aContext) { aContext->mGeneratorValue.uValue.mULongLong = 0; ConcurrentContext_Resume(aContext); return aContext->mGeneratorValue.uValue.mULongLong; }
CONCURRENT_API long ConcurrentContext_GenerateLong(ConcurrentContext *aContext) { aContext->mGeneratorValue.uValue.mLong = 0; ConcurrentContext_Resume(aContext); return aContext->mGeneratorValue.uValue.mLong; }
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; }