2020-01-15 04:36:44 -05:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
|
|
|
|
|
|
#include "AsioIoable.h"
|
|
|
|
|
|
2020-11-17 06:54:28 -04:00
|
|
|
namespace UE {
|
|
|
|
|
namespace Trace {
|
2020-01-15 04:36:44 -05:00
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
bool FAsioIoable::SetSink(FAsioIoSink* Ptr, uint32 Id)
|
|
|
|
|
{
|
|
|
|
|
if (SinkPtr != nullptr)
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SinkPtr = Ptr;
|
|
|
|
|
SinkId = Id;
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
void FAsioIoable::OnIoComplete(const asio::error_code& ErrorCode, int32 Size)
|
|
|
|
|
{
|
|
|
|
|
if (SinkPtr == nullptr)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
2020-01-21 09:51:27 -05:00
|
|
|
#if defined(UE_BUILD_DEBUG) && 0
|
|
|
|
|
std::string ErrorMessage;
|
|
|
|
|
{
|
|
|
|
|
ErrorMessage = ErrorCode.message();
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
2020-01-21 09:19:19 -05:00
|
|
|
if (ErrorCode)
|
|
|
|
|
{
|
2020-01-21 09:21:46 -05:00
|
|
|
Size = 0 - ErrorCode.value();
|
2020-01-21 09:19:19 -05:00
|
|
|
}
|
|
|
|
|
|
2020-01-15 04:36:44 -05:00
|
|
|
FAsioIoSink* Ptr = SinkPtr;
|
|
|
|
|
SinkPtr = nullptr;
|
|
|
|
|
Ptr->OnIoComplete(SinkId, Size);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} // namespace Trace
|
2020-11-17 06:54:28 -04:00
|
|
|
} // namespace UE
|