+++ /dev/null
-// ThriftCommon.cpp : Common functions for sample Thrift client and server
-//
-
-#include "ThriftCommon.h"
-
-namespace thriftcommon
-{
- //----------------------------------------------------------------------------
- //Launch child process and pass R/W anonymous pipe handles on cmd line.
- //This is a simple example and does not include elevation or other
- //advanced features.
- //
- bool LaunchAnonPipeChild(std::string app, boost::shared_ptr<TServerTransport> transport)
- {
-#ifdef _WIN32
- PROCESS_INFORMATION pi;
- STARTUPINFOA si;
- GetStartupInfoA(&si); //set startupinfo for the spawned process
- char handles[MAX_PATH]; //Stores pipe handles converted to text
-
- sprintf(handles, "%s %d %d", app.c_str(),
- (int)boost::shared_dynamic_cast<TPipeServer>(transport)->getClientRdPipeHandle(),
- (int)boost::shared_dynamic_cast<TPipeServer>(transport)->getClientWrtPipeHandle());
-
- //spawn the child process
- if (!CreateProcessA(NULL, handles, NULL,NULL,TRUE,0,NULL,NULL,&si,&pi))
- {
- GlobalOutput.perror("TPipeServer CreateProcess failed, GLE=", GetLastError());
- return false;
- }
-
- CloseHandle(pi.hThread);
- CloseHandle(pi.hProcess);
-#endif
- return true;
- }
-}