Skip to content

Instantly share code, notes, and snippets.

@garethlewin
Created August 21, 2013 23:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save garethlewin/6301606 to your computer and use it in GitHub Desktop.
Save garethlewin/6301606 to your computer and use it in GitHub Desktop.
TTV_ErrorCode ttv::Socket::Recv(uint8_t* buffer, size_t length, size_t& received, bool fillBuffer/*=false*/)
{
auto state = mAsyncOpComplete->SuspendFor (0);
if (TTV_FAILED(state))
{
return state;
}
if ( state == TTV_EC_SUCCESS)
{
memcpy (mBuffer, buffer);
mDataReady = false;
return TTV_EC_SUCCESS;
}
if (state == TTV_WRN_WAIT_TIMEOUT && mDataPending == false)
{
ReadAsync();
}
if (mBlocking)
{
mAsyncOpCompletion->Suspend();
memcpy (mBuffer, buffer);
mDataReady = false;
return;
}
else
{
return TTV_NO_DATA;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment