Win32NamedPipeServerTransport::Win32NamedPipeServerTransport( const tstring & pipeName) : IocpServerTransport(), mpSec(RCF_DEFAULT_INIT), mQueuedAccepts(RCF_DEFAULT_INIT), mPipeNameLock(INVALID_HANDLE_VALUE) { if (pipeName.empty()) { // Generate a pipe name dynamically, that won't conflict with any // other test executables that may be running concurrently. std::pair<tstring, HANDLE> pipeAndHandle = generateNewPipeName(); mPipeName = pipeAndHandle.first + RCF_T("_0"); mPipeNameLock = pipeAndHandle.second; } else { if (pipeName.at(0) == RCF_T('\\')) { mPipeName = pipeName; } else { mPipeName = RCF_T("\\\\.\\pipe\\") + pipeName; } } }
TransportPair UnixLocalTransportFactory::createTransports() { std::string pipeName = generateNewPipeName(); RCF_LOG_2()(pipeName) << "Creating unix local socket transport pair"; return std::make_pair( ServerTransportPtr( new UnixLocalServerTransport(pipeName) ), ClientTransportAutoPtrPtr( new ClientTransportAutoPtr( new UnixLocalClientTransport(pipeName)))); }