17#ifndef AGXOSG_EXTERNALPROCESS_H
18#define AGXOSG_EXTERNALPROCESS_H
86 std::unique_ptr<detail::Process> m_externalProcess;
87 std::thread m_processThread;
88 std::atomic_bool m_processIsRunning;
#define AGX_DECLARE_POINTER_TYPES(type)
Cross-platform utility class for wrapping and launching external processes.
ExternalProcess(const ExternalProcess &)=delete
int closeAndWaitForExit()
Will try to close the external process and wait for it's exit.
bool startProcess(const agx::String &command, const agx::String &workingDir, agx::UInt startupWaitTimeMs=50)
ExternalProcess(const agx::String &processTag="")
Default constructor.
void killProcess()
Will kill the external process by forcing a close.
bool startProcess(const agx::StringVector &commandVector, const agx::String &workingDir, agx::UInt startupWaitTimeMs=50)
virtual ~ExternalProcess()
bool isRunning() const
Return true if the process is still running. False it not.
int waitUntilExit()
Will wait until the external process has exited.
Base class providing referencing counted objects.
The agxOSG namespace provides functionality for visualizing AGX simulations with OpenSceneGraph.