예제 #1
0
std::shared_ptr<TSocketReadThread> THttpConnection::CreateReadThread(std::shared_ptr<SoySocket> Socket,SoyRef ConnectionRef)
{
	auto OnResponse = [this](std::shared_ptr<Soy::TReadProtocol>& pProtocol)
	{
#if defined(ENABLE_RTTI)
		auto pHttpProtocol = std::dynamic_pointer_cast<Http::TResponseProtocol>( pProtocol );
#else
		auto pHttpProtocol = std::static_pointer_cast<Http::TResponseProtocol>( pProtocol );
#endif
		mOnResponse.OnTriggered( *pHttpProtocol );
	};
	
	std::shared_ptr<TSocketReadThread> ReadThread( new THttpReadThread( Socket, ConnectionRef ) );
	mOnDataRecievedListener = ReadThread->mOnDataRecieved.AddListener( OnResponse );
	ReadThread->Start();
	return ReadThread;
}
예제 #2
0
파일: addons.cpp 프로젝트: gaoyakun/atom3d
static DWORD WINAPI StderrReadThread (LPVOID)
{
	return ReadThread (_StderrPipeRead, _StderrString, _StderrStringLock);
}
예제 #3
0
파일: addons.cpp 프로젝트: gaoyakun/atom3d
static DWORD WINAPI StdoutReadThread (LPVOID)
{
	return ReadThread (_StdoutPipeRead, _StdoutString, _StdoutStringLock);
}