1 // =================================
 2 // Copyright (c) 2021 Seppo Laakko
 3 // Distributed under the MIT license
 4 // =================================
 5 
 6 #ifndef CMAJOR_RT_ENVIRONMENT_INCLUDED
 7 #define CMAJOR_RT_ENVIRONMENT_INCLUDED
 8 #include <cmajor/rt/RtApi.hpp>
 9 #include <stdint.h>
10 
11 namespace cmajor { namespace rt {
12 
13 void InitEnvironment();
14 void DoneEnvironment();
15 
16 } } // namespace cmajor::rt
17 
18 extern "C" const char* RtGetEnvironmentVariable(const char* environmentVariableName);
19 extern "C" int32_t RtGetCurrentWorkingDirectoryHandle();
20 extern "C" const char* RtGetCurrentWorkingDirectory(int32_t currentWorkingDirectoryHandle);
21 extern "C" void RtFreeCurrentWorkingDirectoryHandle(int32_t currentWorkingDirectoryHandle);
22 extern "C" int32_t RtExecute(const char* command);
23 extern "C" int32_t RtBeginExec(const char* command);
24 extern "C" void RtAddRedirection(int32_t execHandle, int handle, const char* file);
25 extern "C" int32_t RtEndExec(int32_t execHandle);
26 extern "C" int32_t RtBeginGetPathToExecutable();
27 extern "C" const char* RtGetPathToExecutable(int32_t pathHandle);
28 extern "C" void RtEndGetPathToExecutable(int32_t pathHandle);
29 extern "C" const char* RtGetOsInfo();
30 
31 #endif // CMAJOR_RT_ENVIRONMENT_INCLUDED