1 #ifndef _DEPROCESS_HPP 2 #define _DEPROCESS_HPP 3 /*------------------------------------------------------------------------- 4 * drawElements C++ Base Library 5 * ----------------------------- 6 * 7 * Copyright 2014 The Android Open Source Project 8 * 9 * Licensed under the Apache License, Version 2.0 (the "License"); 10 * you may not use this file except in compliance with the License. 11 * You may obtain a copy of the License at 12 * 13 * http://www.apache.org/licenses/LICENSE-2.0 14 * 15 * Unless required by applicable law or agreed to in writing, software 16 * distributed under the License is distributed on an "AS IS" BASIS, 17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 * See the License for the specific language governing permissions and 19 * limitations under the License. 20 * 21 *//*! 22 * \file 23 * \brief deProcess C++ wrapper. 24 *//*--------------------------------------------------------------------*/ 25 26 #include "deDefs.hpp" 27 #include "deProcess.h" 28 29 #include <string> 30 #include <stdexcept> 31 32 namespace de 33 { 34 35 class ProcessError : public std::runtime_error 36 { 37 public: ProcessError(const std::string & message)38 ProcessError(const std::string &message) : std::runtime_error(message) 39 { 40 } 41 }; 42 43 class Process 44 { 45 public: 46 Process(void); 47 ~Process(void); 48 49 void start(const char *commandLine, const char *workingDirectory); 50 51 void waitForFinish(void); 52 void terminate(void); 53 void kill(void); 54 isRunning(void)55 bool isRunning(void) 56 { 57 return deProcess_isRunning(m_process) == true; 58 } getExitCode(void) const59 int getExitCode(void) const 60 { 61 return deProcess_getExitCode(m_process); 62 } 63 getStdIn(void)64 deFile *getStdIn(void) 65 { 66 return deProcess_getStdIn(m_process); 67 } getStdOut(void)68 deFile *getStdOut(void) 69 { 70 return deProcess_getStdOut(m_process); 71 } getStdErr(void)72 deFile *getStdErr(void) 73 { 74 return deProcess_getStdErr(m_process); 75 } 76 77 void closeStdIn(void); 78 void closeStdOut(void); 79 void closeStdErr(void); 80 81 private: 82 Process(const Process &other); 83 Process &operator=(const Process &other); 84 85 deProcess *m_process; 86 }; 87 88 } // namespace de 89 90 #endif // _DEPROCESS_HPP 91