Process.h
Go to the documentation of this file.
1 /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
2  file Copyright.txt or https://cmake.org/licensing#kwsys for details. */
3 #ifndef vtksys_Process_h
4 #define vtksys_Process_h
5 
6 #include <vtksys/Configure.h>
7 
8 /* Redefine all public interface symbol names to be in the proper
9  namespace. These macros are used internally to kwsys only, and are
10  not visible to user code. Use kwsysHeaderDump.pl to reproduce
11  these macros after making changes to the interface. */
12 #if !defined(KWSYS_NAMESPACE)
13 # define kwsys_ns(x) vtksys##x
14 # define kwsysEXPORT vtksys_EXPORT
15 #endif
16 #if !vtksys_NAME_IS_KWSYS
17 # define kwsysProcess kwsys_ns(Process)
18 # define kwsysProcess_s kwsys_ns(Process_s)
19 # define kwsysProcess_New kwsys_ns(Process_New)
20 # define kwsysProcess_Delete kwsys_ns(Process_Delete)
21 # define kwsysProcess_SetCommand kwsys_ns(Process_SetCommand)
22 # define kwsysProcess_AddCommand kwsys_ns(Process_AddCommand)
23 # define kwsysProcess_SetTimeout kwsys_ns(Process_SetTimeout)
24 # define kwsysProcess_SetWorkingDirectory \
25  kwsys_ns(Process_SetWorkingDirectory)
26 # define kwsysProcess_SetPipeFile kwsys_ns(Process_SetPipeFile)
27 # define kwsysProcess_SetPipeNative kwsys_ns(Process_SetPipeNative)
28 # define kwsysProcess_SetPipeShared kwsys_ns(Process_SetPipeShared)
29 # define kwsysProcess_Option_Detach kwsys_ns(Process_Option_Detach)
30 # define kwsysProcess_Option_HideWindow kwsys_ns(Process_Option_HideWindow)
31 # define kwsysProcess_Option_MergeOutput kwsys_ns(Process_Option_MergeOutput)
32 # define kwsysProcess_Option_Verbatim kwsys_ns(Process_Option_Verbatim)
33 # define kwsysProcess_Option_CreateProcessGroup \
34  kwsys_ns(Process_Option_CreateProcessGroup)
35 # define kwsysProcess_GetOption kwsys_ns(Process_GetOption)
36 # define kwsysProcess_SetOption kwsys_ns(Process_SetOption)
37 # define kwsysProcess_Option_e kwsys_ns(Process_Option_e)
38 # define kwsysProcess_State_Starting kwsys_ns(Process_State_Starting)
39 # define kwsysProcess_State_Error kwsys_ns(Process_State_Error)
40 # define kwsysProcess_State_Exception kwsys_ns(Process_State_Exception)
41 # define kwsysProcess_State_Executing kwsys_ns(Process_State_Executing)
42 # define kwsysProcess_State_Exited kwsys_ns(Process_State_Exited)
43 # define kwsysProcess_State_Expired kwsys_ns(Process_State_Expired)
44 # define kwsysProcess_State_Killed kwsys_ns(Process_State_Killed)
45 # define kwsysProcess_State_Disowned kwsys_ns(Process_State_Disowned)
46 # define kwsysProcess_State_e kwsys_ns(Process_State_e)
47 # define kwsysProcess_Exception_None kwsys_ns(Process_Exception_None)
48 # define kwsysProcess_Exception_Fault kwsys_ns(Process_Exception_Fault)
49 # define kwsysProcess_Exception_Illegal kwsys_ns(Process_Exception_Illegal)
50 # define kwsysProcess_Exception_Interrupt \
51  kwsys_ns(Process_Exception_Interrupt)
52 # define kwsysProcess_Exception_Numerical \
53  kwsys_ns(Process_Exception_Numerical)
54 # define kwsysProcess_Exception_Other kwsys_ns(Process_Exception_Other)
55 # define kwsysProcess_Exception_e kwsys_ns(Process_Exception_e)
56 # define kwsysProcess_GetState kwsys_ns(Process_GetState)
57 # define kwsysProcess_GetExitException kwsys_ns(Process_GetExitException)
58 # define kwsysProcess_GetExitCode kwsys_ns(Process_GetExitCode)
59 # define kwsysProcess_GetExitValue kwsys_ns(Process_GetExitValue)
60 # define kwsysProcess_GetErrorString kwsys_ns(Process_GetErrorString)
61 # define kwsysProcess_GetExceptionString kwsys_ns(Process_GetExceptionString)
62 # define kwsysProcess_GetStateByIndex kwsys_ns(Process_GetStateByIndex)
63 # define kwsysProcess_GetExitExceptionByIndex \
64  kwsys_ns(Process_GetExitExceptionByIndex)
65 # define kwsysProcess_GetExitCodeByIndex kwsys_ns(Process_GetExitCodeByIndex)
66 # define kwsysProcess_GetExitValueByIndex \
67  kwsys_ns(Process_GetExitValueByIndex)
68 # define kwsysProcess_GetExceptionStringByIndex \
69  kwsys_ns(Process_GetExceptionStringByIndex)
70 # define kwsysProcess_GetExitCodeByIndex kwsys_ns(Process_GetExitCodeByIndex)
71 # define kwsysProcess_Execute kwsys_ns(Process_Execute)
72 # define kwsysProcess_Disown kwsys_ns(Process_Disown)
73 # define kwsysProcess_WaitForData kwsys_ns(Process_WaitForData)
74 # define kwsysProcess_Pipes_e kwsys_ns(Process_Pipes_e)
75 # define kwsysProcess_Pipe_None kwsys_ns(Process_Pipe_None)
76 # define kwsysProcess_Pipe_STDIN kwsys_ns(Process_Pipe_STDIN)
77 # define kwsysProcess_Pipe_STDOUT kwsys_ns(Process_Pipe_STDOUT)
78 # define kwsysProcess_Pipe_STDERR kwsys_ns(Process_Pipe_STDERR)
79 # define kwsysProcess_Pipe_Timeout kwsys_ns(Process_Pipe_Timeout)
80 # define kwsysProcess_Pipe_Handle kwsys_ns(Process_Pipe_Handle)
81 # define kwsysProcess_WaitForExit kwsys_ns(Process_WaitForExit)
82 # define kwsysProcess_Interrupt kwsys_ns(Process_Interrupt)
83 # define kwsysProcess_Kill kwsys_ns(Process_Kill)
84 # define kwsysProcess_KillPID kwsys_ns(Process_KillPID)
85 # define kwsysProcess_ResetStartTime kwsys_ns(Process_ResetStartTime)
86 #endif
87 
88 #if defined(__cplusplus)
89 extern "C" {
90 #endif
91 
96 
97 /* Platform-specific pipe handle type. */
98 #if defined(_WIN32) && !defined(__CYGWIN__)
99 typedef void* kwsysProcess_Pipe_Handle;
100 #else
102 #endif
103 
108 
114 
122  char const* const* command);
123 
132  char const* const* command);
133 
140 kwsysEXPORT void kwsysProcess_SetTimeout(kwsysProcess* cp, double timeout);
141 
148  const char* dir);
149 
155  const char* file);
156 
163  int shared);
164 
184  kwsysProcess* cp, int pipe, const kwsysProcess_Pipe_Handle p[2]);
185 
219 kwsysEXPORT int kwsysProcess_GetOption(kwsysProcess* cp, int optionId);
220 kwsysEXPORT void kwsysProcess_SetOption(kwsysProcess* cp, int optionId,
221  int value);
223 {
229 };
230 
245 {
254 };
255 
273 {
280 };
281 
293 
300 
306 
312 
323 {
328 };
329 
346  int idx);
347 
359 
366 
372  kwsysProcess* cp, int idx);
373 
378 
387 
416  int* length, double* timeout);
418 {
424 };
425 
444 kwsysEXPORT int kwsysProcess_WaitForExit(kwsysProcess* cp, double* timeout);
445 
456 
463 
469 kwsysEXPORT void kwsysProcess_KillPID(unsigned long);
470 
475 
476 #if defined(__cplusplus)
477 } /* extern "C" */
478 #endif
479 
480 /* If we are building a kwsys .c or .cxx file, let it use these macros.
481  Otherwise, undefine them to keep the namespace clean. */
482 #if !defined(KWSYS_NAMESPACE)
483 # undef kwsys_ns
484 # undef kwsysEXPORT
485 # if !vtksys_NAME_IS_KWSYS
486 # undef kwsysProcess
487 # undef kwsysProcess_s
488 # undef kwsysProcess_New
489 # undef kwsysProcess_Delete
490 # undef kwsysProcess_SetCommand
491 # undef kwsysProcess_AddCommand
492 # undef kwsysProcess_SetTimeout
493 # undef kwsysProcess_SetWorkingDirectory
494 # undef kwsysProcess_SetPipeFile
495 # undef kwsysProcess_SetPipeNative
496 # undef kwsysProcess_SetPipeShared
497 # undef kwsysProcess_Option_Detach
498 # undef kwsysProcess_Option_HideWindow
499 # undef kwsysProcess_Option_MergeOutput
500 # undef kwsysProcess_Option_Verbatim
501 # undef kwsysProcess_Option_CreateProcessGroup
502 # undef kwsysProcess_GetOption
503 # undef kwsysProcess_SetOption
504 # undef kwsysProcess_Option_e
505 # undef kwsysProcess_State_Starting
506 # undef kwsysProcess_State_Error
507 # undef kwsysProcess_State_Exception
508 # undef kwsysProcess_State_Executing
509 # undef kwsysProcess_State_Exited
510 # undef kwsysProcess_State_Expired
511 # undef kwsysProcess_State_Killed
512 # undef kwsysProcess_State_Disowned
513 # undef kwsysProcess_GetState
514 # undef kwsysProcess_State_e
515 # undef kwsysProcess_Exception_None
516 # undef kwsysProcess_Exception_Fault
517 # undef kwsysProcess_Exception_Illegal
518 # undef kwsysProcess_Exception_Interrupt
519 # undef kwsysProcess_Exception_Numerical
520 # undef kwsysProcess_Exception_Other
521 # undef kwsysProcess_GetExitException
522 # undef kwsysProcess_Exception_e
523 # undef kwsysProcess_GetExitCode
524 # undef kwsysProcess_GetExitValue
525 # undef kwsysProcess_GetErrorString
526 # undef kwsysProcess_GetExceptionString
527 # undef kwsysProcess_Execute
528 # undef kwsysProcess_Disown
529 # undef kwsysProcess_WaitForData
530 # undef kwsysProcess_Pipes_e
531 # undef kwsysProcess_Pipe_None
532 # undef kwsysProcess_Pipe_STDIN
533 # undef kwsysProcess_Pipe_STDOUT
534 # undef kwsysProcess_Pipe_STDERR
535 # undef kwsysProcess_Pipe_Timeout
536 # undef kwsysProcess_Pipe_Handle
537 # undef kwsysProcess_WaitForExit
538 # undef kwsysProcess_Interrupt
539 # undef kwsysProcess_Kill
540 # undef kwsysProcess_ResetStartTime
541 # endif
542 #endif
543 
544 #endif
#define kwsysProcess_GetExitExceptionByIndex
Definition: Process.h:63
#define kwsysProcess_Option_HideWindow
Definition: Process.h:30
#define kwsysProcess_Option_CreateProcessGroup
Definition: Process.h:33
#define kwsysEXPORT
Definition: Process.h:14
#define kwsysProcess_State_Killed
Definition: Process.h:44
#define kwsysProcess_Pipe_STDIN
Definition: Process.h:76
#define kwsysProcess_KillPID
Definition: Process.h:84
#define kwsysProcess_State_Exited
Definition: Process.h:42
#define kwsysProcess_WaitForExit
Definition: Process.h:81
#define kwsysProcess_s
Definition: Process.h:18
#define kwsysProcess_Exception_Other
Definition: Process.h:54
struct kwsysProcess_s kwsysProcess
Process control data structure.
Definition: Process.h:95
#define kwsysProcess_Pipe_Handle
Definition: Process.h:80
kwsysProcess_Pipes_e
Definition: Process.h:417
#define kwsysProcess_Exception_Illegal
Definition: Process.h:49
#define kwsysProcess_Exception_Interrupt
Definition: Process.h:50
#define kwsysProcess_State_Error
Definition: Process.h:39
#define kwsysProcess_State_Expired
Definition: Process.h:43
#define kwsysProcess_Exception_Fault
Definition: Process.h:48
#define kwsysProcess_GetExitValue
Definition: Process.h:59
#define kwsysProcess_New
Definition: Process.h:19
#define kwsysProcess_SetOption
Definition: Process.h:36
#define kwsysProcess_WaitForData
Definition: Process.h:73
#define kwsysProcess_State_Exception
Definition: Process.h:40
#define kwsysProcess_Execute
Definition: Process.h:71
#define kwsysProcess_State_Starting
Definition: Process.h:38
#define kwsysProcess_Disown
Definition: Process.h:72
#define kwsysProcess_GetStateByIndex
Definition: Process.h:62
#define kwsysProcess_Kill
Definition: Process.h:83
kwsysProcess_StateByIndex_e
Definition: Process.h:322
#define kwsysProcess_Interrupt
Definition: Process.h:82
#define kwsysProcess_Pipe_None
Definition: Process.h:75
#define kwsysProcess_GetState
Definition: Process.h:56
#define kwsysProcess_SetCommand
Definition: Process.h:21
kwsysProcess_Option_e
Definition: Process.h:222
#define kwsysProcess_GetOption
Definition: Process.h:35
#define kwsysProcess_GetExitCode
Definition: Process.h:58
#define kwsysProcess_State_Disowned
Definition: Process.h:45
#define kwsysProcess_GetExceptionString
Definition: Process.h:61
#define kwsysProcess_Option_Verbatim
Definition: Process.h:32
kwsysProcess_State_e
Definition: Process.h:244
#define kwsysProcess_GetExitException
Definition: Process.h:57
#define kwsysProcess_Exception_Numerical
Definition: Process.h:52
#define kwsysProcess_Option_MergeOutput
Definition: Process.h:31
#define kwsysProcess_State_Executing
Definition: Process.h:41
#define kwsysProcess_SetWorkingDirectory
Definition: Process.h:24
#define kwsysProcess_Pipe_STDOUT
Definition: Process.h:77
#define kwsysProcess_Option_Detach
Definition: Process.h:29
#define kwsysProcess_SetPipeNative
Definition: Process.h:27
#define kwsysProcess_GetExceptionStringByIndex
Definition: Process.h:68
#define kwsysProcess_Pipe_STDERR
Definition: Process.h:78
#define kwsysProcess_ResetStartTime
Definition: Process.h:85
kwsysProcess_Exception_e
Definition: Process.h:272
#define kwsysProcess_GetExitCodeByIndex
Definition: Process.h:70
#define kwsysProcess_Exception_None
Definition: Process.h:47
#define kwsysProcess_SetTimeout
Definition: Process.h:23
#define kwsysProcess_Delete
Definition: Process.h:20
#define kwsysProcess_AddCommand
Definition: Process.h:22
#define kwsysProcess_GetErrorString
Definition: Process.h:60
#define kwsysProcess_SetPipeShared
Definition: Process.h:28
#define kwsysProcess_Pipe_Timeout
Definition: Process.h:79
#define kwsysProcess_SetPipeFile
Definition: Process.h:26
#define kwsysProcess_GetExitValueByIndex
Definition: Process.h:66