diff options
author | Devtools Arcadia <arcadia-devtools@yandex-team.ru> | 2022-02-07 18:08:42 +0300 |
---|---|---|
committer | Devtools Arcadia <arcadia-devtools@mous.vla.yp-c.yandex.net> | 2022-02-07 18:08:42 +0300 |
commit | 1110808a9d39d4b808aef724c861a2e1a38d2a69 (patch) | |
tree | e26c9fed0de5d9873cce7e00bc214573dc2195b7 /contrib/libs/poco/Foundation/include/Poco/Process_WIN32.h | |
download | ydb-1110808a9d39d4b808aef724c861a2e1a38d2a69.tar.gz |
intermediate changes
ref:cde9a383711a11544ce7e107a78147fb96cc4029
Diffstat (limited to 'contrib/libs/poco/Foundation/include/Poco/Process_WIN32.h')
-rw-r--r-- | contrib/libs/poco/Foundation/include/Poco/Process_WIN32.h | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/contrib/libs/poco/Foundation/include/Poco/Process_WIN32.h b/contrib/libs/poco/Foundation/include/Poco/Process_WIN32.h new file mode 100644 index 0000000000..afed42c25a --- /dev/null +++ b/contrib/libs/poco/Foundation/include/Poco/Process_WIN32.h @@ -0,0 +1,83 @@ +// +// Process_WIN32.h +// +// Library: Foundation +// Package: Processes +// Module: Process +// +// Definition of the ProcessImpl class for WIN32. +// +// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef Foundation_Process_WIN32_INCLUDED +#define Foundation_Process_WIN32_INCLUDED + + +#include "Poco/Foundation.h" +#include "Poco/RefCountedObject.h" +#include <vector> +#include <map> +#include "Poco/UnWindows.h" + + +namespace Poco { + + +class Pipe; + + +class Foundation_API ProcessHandleImpl: public RefCountedObject +{ +public: + ProcessHandleImpl(HANDLE _hProcess, UInt32 pid); + ~ProcessHandleImpl(); + + UInt32 id() const; + HANDLE process() const; + int wait() const; + void closeHandle(); + +private: + HANDLE _hProcess; + UInt32 _pid; + + ProcessHandleImpl(const ProcessHandleImpl&); + ProcessHandleImpl& operator = (const ProcessHandleImpl&); +}; + + +class Foundation_API ProcessImpl +{ +public: + typedef UInt32 PIDImpl; + typedef std::vector<std::string> ArgsImpl; + typedef std::map<std::string, std::string> EnvImpl; + + static PIDImpl idImpl(); + static void timesImpl(long& userTime, long& kernelTime); + static ProcessHandleImpl* launchImpl( + const std::string& command, + const ArgsImpl& args, + const std::string& initialDirectory, + Pipe* inPipe, + Pipe* outPipe, + Pipe* errPipe, + const EnvImpl& env); + static void killImpl(ProcessHandleImpl& handle); + static void killImpl(PIDImpl pid); + static bool isRunningImpl(const ProcessHandleImpl& handle); + static bool isRunningImpl(PIDImpl pid); + static void requestTerminationImpl(PIDImpl pid); + static std::string terminationEventName(PIDImpl pid); +}; + + +} // namespace Poco + + +#endif // Foundation_Process_WIN32_INCLUDED |