From 19fcec84d8d7d21e796c7624e521b60d28ee21ed Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 20:45:59 +0200 Subject: Adding upstream version 16.2.11+ds. Signed-off-by: Daniel Baumann --- .../contrib/transport-sample/ThriftCommon.cpp | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/jaegertracing/thrift/contrib/transport-sample/ThriftCommon.cpp (limited to 'src/jaegertracing/thrift/contrib/transport-sample/ThriftCommon.cpp') diff --git a/src/jaegertracing/thrift/contrib/transport-sample/ThriftCommon.cpp b/src/jaegertracing/thrift/contrib/transport-sample/ThriftCommon.cpp new file mode 100644 index 000000000..60ebf7a00 --- /dev/null +++ b/src/jaegertracing/thrift/contrib/transport-sample/ThriftCommon.cpp @@ -0,0 +1,37 @@ +// 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 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(transport)->getClientRdPipeHandle(), + (int)boost::shared_dynamic_cast(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; + } +} -- cgit v1.2.3