diff options
Diffstat (limited to 'kdejava/koala/org/kde/koala/TDEProcess.java')
-rw-r--r-- | kdejava/koala/org/kde/koala/TDEProcess.java | 628 |
1 files changed, 0 insertions, 628 deletions
diff --git a/kdejava/koala/org/kde/koala/TDEProcess.java b/kdejava/koala/org/kde/koala/TDEProcess.java deleted file mode 100644 index caad1555..00000000 --- a/kdejava/koala/org/kde/koala/TDEProcess.java +++ /dev/null @@ -1,628 +0,0 @@ -//Auto-generated by kalyptus. DO NOT EDIT. -package org.kde.koala; - -import org.kde.qt.Qt; -import org.kde.qt.TQMetaObject; -import org.kde.qt.QtSupport; -import org.kde.qt.TQObject; -import org.kde.qt.TQObject; - -/** - - Child process invocation, monitoring and control. - <li><b>General usage and features:</b></li> - This class allows a KDE application to start child processes without having - to worry about UNX signal handling issues and zombie process reaping. - Basically, this class distinguishes three different ways of running - child processes: - - <li> - DontCare -- The child process is invoked and both the child - process and the parent process continue concurrently. - </li> - The process is started in an own session (see setsid(2)). - - <li> - NotifyOnExit -- The child process is invoked and both the - child and the parent process run concurrently. - </li> - When the child process exits, the TDEProcess instance - corresponding to it emits the Qt signal processExited(). - Since this signal is <b>not</b> emitted from within a UNX - signal handler, arbitrary function calls can be made. - Be aware: When the TDEProcess object gets destructed, the child - process will be killed if it is still running! - This means in particular, that it usually makes no sense to use - a TDEProcess on the stack with NotifyOnExit. - - <li> - OwnGroup -- like NotifyOnExit, but the child process is started - in an own process group (and an own session, FWIW). The behavior of - kill() changes to killing the whole process group - this makes - this mode useful for implementing primitive job management. It can be - used to work around broken wrapper scripts that don't propagate signals - to the "real" program. However, use this with care, as you disturb the - shell's job management if your program is started from the command line. - </li> - - <li> - Block -- The child process starts and the parent process - is suspended until the child process exits. (<b>Really</b> not recommended - for programs with a GUI.) - In this mode the parent can read the child's output, but can't send it any - input. - </li> - TDEProcess also provides several functions for determining the exit status - and the pid of the child process it represents. - Furthermore it is possible to supply command-line arguments to the process - in a clean fashion (no null-terminated stringlists and such...) - A small usage example: - <pre> - TDEProcess proc = new TDEProcess; - proc << "my_executable"; - proc << "These" << "are" << "the" << "command" << "line" << "args"; - TQApplication.connect(proc, SIGNAL("processExited(TDEProcess )"), - pointer_to_my_object, SLOT("my_objects_slot(TDEProcess )")); - proc.start(); - </pre> - This will start "my_executable" with the commandline arguments "These"... - When the child process exits, the slot will be invoked. - <li><b>Communication with the child process:</b></li> - TDEProcess supports communication with the child process through - stdin/stdout/stderr. - The following functions are provided for getting data from the child - process or sending data to the child's stdin (For more information, - have a look at the documentation of each function): - - <li> - writeStdin() - -- Transmit data to the child process' stdin. When all data was sent, the - signal wroteStdin() is emitted. - </li> - - <li> - When data arrives at stdout or stderr, the signal receivedStdout() - resp. receivedStderr() is emitted. - </li> - - <li> - You can shut down individual communication channels with - closeStdin(), closeStdout(), and closeStderr(), resp. - </li> - See {@link TDEProcessSignals} for signals emitted by TDEProcess - @author Christian Czezatke e9025461@student.tuwien.ac.at - - @short Child process invocation, monitoring and control. - @see KProcIO - -*/ -public class TDEProcess extends TQObject { - protected TDEProcess(Class dummy){super((Class) null);} - /** - More or less intuitive constants for use with setPriority(). - @short More or less intuitive constants for use with setPriority(). - */ - public static final int PrioLowest = 20; - public static final int PrioLow = 10; - public static final int PrioLower = 5; - public static final int PrioNormal = 0; - public static final int PrioHigher = -5; - public static final int PrioHigh = -10; - public static final int PrioHighest = -19; - - /** - Modes in which the communication channel can be opened. - If communication for more than one channel is required, - the values have to be or'ed together, for example to get - communication with stdout as well as with stdin, you would - specify <code>Stdin</code> | <code>Stdout</code> - If <code>NoRead</code> is specified in conjunction with <code>Stdout</code>, - no data is actually read from <code>Stdout</code> but only - the signal receivedStdout(int fd, int &len) is emitted. - @short Modes in which the communication channel can be opened. - */ - public static final int NoCommunication = 0; - public static final int Stdin = 1; - public static final int Stdout = 2; - public static final int Stderr = 4; - public static final int AllOutput = 6; - public static final int All = 7; - public static final int NoRead = 8; - - /** - Run-modes for a child process. - @short Run-modes for a child process. - */ - public static final int DontCare = 0; - public static final int NotifyOnExit = 1; - public static final int Block = 2; - public static final int OwnGroup = 3; - - public native TQMetaObject metaObject(); - public native String className(); - /** - Constructor - @short Constructor - */ - public TDEProcess(TQObject parent, String name) { - super((Class) null); - newTDEProcess(parent,name); - } - private native void newTDEProcess(TQObject parent, String name); - public TDEProcess(TQObject parent) { - super((Class) null); - newTDEProcess(parent); - } - private native void newTDEProcess(TQObject parent); - /** - Constructor - @short Constructor - */ - public TDEProcess() { - super((Class) null); - newTDEProcess(); - } - private native void newTDEProcess(); - /** - Sets the executable and the command line argument list for this process. - For example, doing an "ls -l /usr/local/bin" can be achieved by: - <pre> - TDEProcess p; - ... - p << "ls" << "-l" << "/usr/local/bin" - </pre> - @param arg the argument to add - @return a reference to this TDEProcess - - @short Sets the executable and the command line argument list for this process. - */ - public native TDEProcess op_write(String arg); - /** - Sets the executable and the command line argument list for this process, - in a single method call, or add a list of arguments. - @param args the arguments to add - @return a reference to this TDEProcess - - @short Sets the executable and the command line argument list for this process, in a single method call, or add a list of arguments. - */ - public native TDEProcess op_write(String[] args); - /** - Clear a command line argument list that has been set by using - operator<<. - @short Clear a command line argument list that has been set by using operator<<. - */ - public native void clearArguments(); - /** - Starts the process. - For a detailed description of the - various run modes and communication semantics, have a look at the - general description of the TDEProcess class. Note that if you use - setUsePty( Stdout | Stderr, \<boolean\> ), you cannot use Stdout | Stderr - here - instead, use Stdout only to receive the mixed output. - The following problems could cause this function to - return false: - - <li> - The process is already running. - </li> - - <li> - The command line argument list is empty. - </li> - - <li> - The the <code>comm</code> parameter is incompatible with the selected pty usage. - </li> - - <li> - The starting of the process failed (could not fork). - </li> - - <li> - The executable was not found. - </li> - @param runmode The Run-mode for the process. - @param comm Specifies which communication links should be - established to the child process (stdin/stdout/stderr). By default, - no communication takes place and the respective communication - signals will never get emitted. - @return true on success, false on error - (see above for error conditions) - - @short Starts the process. - */ - public native boolean start(int runmode, int comm); - public native boolean start(int runmode); - public native boolean start(); - /** - Stop the process (by sending it a signal). - @param signo The signal to send. The default is SIGTERM. - @return true if the signal was delivered successfully. - - @short Stop the process (by sending it a signal). - */ - public native boolean kill(int signo); - public native boolean kill(); - /** - Checks whether the process is running. - @return true if the process is (still) considered to be running - - @short Checks whether the process is running. - */ - public native boolean isRunning(); - /** Returns the process id of the process. - If it is called after - the process has exited, it returns the process id of the last - child process that was created by this instance of TDEProcess. - Calling it before any child process has been started by this - TDEProcess instance causes pid() to return 0. - @return the pid of the process or 0 if no process has been started yet. - - @short Returns the process id of the process. - */ - public native int pid(); - /** - Suspend processing of data from stdout of the child process. - @short Suspend processing of data from stdout of the child process. - */ - public native void suspend(); - /** - Resume processing of data from stdout of the child process. - @short Resume processing of data from stdout of the child process. - */ - public native void resume(); - /** - Suspend execution of the current thread until the child process dies - or the timeout hits. This function is not recommended for programs - with a GUI. - @param timeout timeout in seconds. -1 means wait indefinitely. - @return true if the process exited, false if the timeout hit. - - @short Suspend execution of the current thread until the child process dies or the timeout hits. - */ - public native boolean waitThread(int timeout); - public native boolean waitThread(); - /** - Checks whether the process exited cleanly. - @return true if the process has already finished and has exited - "voluntarily", ie: it has not been killed by a signal. - - @short Checks whether the process exited cleanly. - */ - public native boolean normalExit(); - /** - Checks whether the process was killed by a signal. - @return true if the process has already finished and has not exited - "voluntarily", ie: it has been killed by a signal. - - @short Checks whether the process was killed by a signal. - */ - public native boolean signalled(); - /** - Checks whether a killed process dumped core. - @return true if signalled() returns true and the process - dumped core. Note that on systems that don't define the - WCOREDUMP macro, the return value is always false. - - @short Checks whether a killed process dumped core. - */ - public native boolean coreDumped(); - /** - Returns the exit status of the process. - @return the exit status of the process. Note that this value - is not valid if normalExit() returns false. - - @short Returns the exit status of the process. - */ - public native int exitStatus(); - /** - Returns the signal the process was killed by. - @return the signal number that caused the process to exit. - Note that this value is not valid if signalled() returns false. - - @short Returns the signal the process was killed by. - */ - public native int exitSignal(); - /** - Transmit data to the child process' stdin. - This function may return false in the following cases: - - <li> - The process is not currently running. - This implies that you cannot use this function in Block mode. - </li> - - <li> - Communication to stdin has not been requested in the start() call. - </li> - - <li> - Transmission of data to the child process by a previous call to - writeStdin() is still in progress. - </li> - Please note that the data is sent to the client asynchronously, - so when this function returns, the data might not have been - processed by the child process. - That means that you must not free <code>buffer</code> or call writeStdin() - again until either a wroteStdin() signal indicates that the - data has been sent or a processExited() signal shows that - the child process is no longer alive. - If all the data has been sent to the client, the signal - wroteStdin() will be emitted. - @param buffer the buffer to write - @param buflen the length of the buffer - @return false if an error has occurred - - @short Transmit data to the child process' stdin. - */ - public native boolean writeStdin(String buffer, int buflen); - /** - Shuts down the Stdin communication link. If no pty is used, this - causes "EOF" to be indicated on the child's stdin file descriptor. - @return false if no Stdin communication link exists (any more). - - @short Shuts down the Stdin communication link. - */ - public native boolean closeStdin(); - /** - Shuts down the Stdout communication link. If no pty is used, any further - attempts by the child to write to its stdout file descriptor will cause - it to receive a SIGPIPE. - @return false if no Stdout communication link exists (any more). - - @short Shuts down the Stdout communication link. - */ - public native boolean closeStdout(); - /** - Shuts down the Stderr communication link. If no pty is used, any further - attempts by the child to write to its stderr file descriptor will cause - it to receive a SIGPIPE. - @return false if no Stderr communication link exists (any more). - - @short Shuts down the Stderr communication link. - */ - public native boolean closeStderr(); - /** - Deletes the optional utmp entry and closes the pty. - Make sure to shut down any communication links that are using the pty - before calling this function. - @return false if the pty is not open (any more). - - @short Deletes the optional utmp entry and closes the pty. - */ - public native boolean closePty(); - /** - @brief Close stdin, stdout, stderr and the pty - This is the same that calling all close functions in a row: - @short @brief Close stdin, stdout, stderr and the pty - @see #closeStdin - @see @see - @see #closeStdout - @see @see - @see #closeStderr - @see @see - @see #closePty - */ - public native void closeAll(); - /** - Lets you see what your arguments are for debugging. - @return the list of arguments - - @short Lets you see what your arguments are for debugging. - */ - // const TQValueList<TQCString>& args(); >>>> NOT CONVERTED - /** - Controls whether the started process should drop any - setuid/setgid privileges or whether it should keep them. - Note that this function is mostly a dummy, as the KDE libraries - currently refuse to run with setuid/setgid privileges. - The default is false: drop privileges - @param keepPrivileges true to keep the privileges - @short Controls whether the started process should drop any setuid/setgid privileges or whether it should keep them. - */ - public native void setRunPrivileged(boolean keepPrivileges); - /** - Returns whether the started process will drop any - setuid/setgid privileges or whether it will keep them. - @return true if the process runs privileged - - @short Returns whether the started process will drop any setuid/setgid privileges or whether it will keep them. - */ - public native boolean runPrivileged(); - /** - Adds the variable <code>name</code> to the process' environment. - This function must be called before starting the process. - @param name the name of the environment variable - @param value the new value for the environment variable - @short Adds the variable <code>name</code> to the process' environment. - */ - public native void setEnvironment(String name, String value); - /** - Changes the current working directory (CWD) of the process - to be started. - This function must be called before starting the process. - @param dir the new directory - @short Changes the current working directory (CWD) of the process to be started. - */ - public native void setWorkingDirectory(String dir); - /** - Specify whether to start the command via a shell or directly. - The default is to start the command directly. - If <code>useShell</code> is true <code>shell</code> will be used as shell, or - if shell is empty, /bin/sh will be used. - When using a shell, the caller should make sure that all filenames etc. - are properly quoted when passed as argument. - @param useShell true if the command should be started via a shell - @param shell the path to the shell that will execute the process, or - 0 to use /bin/sh. Use getenv("SHELL") to use the user's - default shell, but note that doing so is usually a bad idea - for shell compatibility reasons. - @short Specify whether to start the command via a shell or directly. - @see #quote - */ - public native void setUseShell(boolean useShell, String shell); - public native void setUseShell(boolean useShell); - /** - Detaches TDEProcess from child process. All communication is closed. - No exit notification is emitted any more for the child process. - Deleting the TDEProcess will no longer kill the child process. - Note that the current process remains the parent process of the - child process. - @short Detaches TDEProcess from child process. - */ - public native void detach(); - /** - Sets the scheduling priority of the process. - @param prio the new priority in the range -20 (high) to 19 (low). - @return false on error; see setpriority(2) for possible reasons. - - @short Sets the scheduling priority of the process. - */ - public native boolean setPriority(int prio); - /** - This function can be used to quote an argument string such that - the shell processes it properly. This is e. g. necessary for - user-provided file names which may contain spaces or quotes. - It also prevents expansion of wild cards and environment variables. - @param arg the argument to quote - @return the quoted argument - - @short This function can be used to quote an argument string such that the shell processes it properly. - */ - public static native String quote(String arg); - /** - Sets up the environment according to the data passed via - setEnvironment() - @short Sets up the environment according to the data passed via setEnvironment() - */ - protected native void setupEnvironment(); - /** - This function is called from start() right before a fork() takes - place. According to the <code>comm</code> parameter this function has to initialize - the in, out and err data members of TDEProcess. - This function should return 1 if setting the needed communication channels - was successful. - The default implementation is to create UNIX STREAM sockets for the - communication, but you could reimplement this function to establish a - TCP/IP communication for network communication, for example. - @short This function is called from start() right before a fork() takes place. - */ - protected native int setupCommunication(int comm); - /** - Called right after a (successful) fork() on the parent side. This function - will usually do some communications cleanup, like closing in[0], - out[1] and out[1]. - Furthermore, it must also create the TQSocketNotifiers innot, - outnot and errnot and connect their Qt signals to the respective - TDEProcess slots. - For a more detailed explanation, it is best to have a look at the default - implementation in kprocess.cpp. - @short Called right after a (successful) fork() on the parent side. - */ - protected native int commSetupDoneP(); - /** - Called right after a (successful) fork(), but before an exec() on the child - process' side. It usually duplicates the in[0], out[1] and - err[1] file handles to the respective standard I/O handles. - @short Called right after a (successful) fork(), but before an exec() on the child process' side. - */ - protected native int commSetupDoneC(); - /** - Immediately called after a successfully started process in NotifyOnExit - mode has exited. This function normally calls commClose() - and emits the processExited() signal. - @param state the exit code of the process as returned by waitpid() - @short Immediately called after a successfully started process in NotifyOnExit mode has exited. - */ - protected native void processHasExited(int state); - /** - Cleans up the communication links to the child after it has exited. - This function should act upon the values of pid() and runs. - See the kprocess.cpp source for details. - - <li> - If pid() returns zero, the communication links should be closed - only. - </li> - - <li> - if pid() returns non-zero and runs is false, all data - immediately available from the communication links should be processed - before closing them. - </li> - - <li> - if pid() returns non-zero and runs is true, the communication - links should be monitored for data until the file handle returned by - TDEProcessController.theTDEProcessController.notifierFd() becomes ready - for reading - when it triggers, runs should be reset to false, and - the function should be immediately left without closing anything. - </li> - The previous semantics of this function are forward-compatible, but should - be avoided, as they are prone to race conditions and can cause TDEProcess - (and thus the whole program) to lock up under certain circumstances. At the - end the function closes the communication links in any case. Additionally - - <li> - if runs is true, the communication links are monitored for data - until all of them have returned EOF. Note that if any system function is - interrupted (errno == EINTR) the polling loop should be aborted. - </li> - - <li> - if runs is false, all data immediately available from the - communication links is processed. - - </li> @short Cleans up the communication links to the child after it has exited. - */ - protected native void commClose(); - /** - Specify the actual executable that should be started (first argument to execve) - Normally the the first argument is the executable but you can - override that with this function. - @short Specify the actual executable that should be started (first argument to execve) Normally the the first argument is the executable but you can override that with this function. - */ - protected native void setBinaryExecutable(String filename); - /** - Called by slotChildOutput() this function copies data arriving from - the child process' stdout to the respective buffer and emits the signal - receivedStdout(). - @short Called by slotChildOutput() this function copies data arriving from the child process' stdout to the respective buffer and emits the signal receivedStdout(). - */ - protected native int childOutput(int fdno); - /** - Called by slotChildError() this function copies data arriving from - the child process' stderr to the respective buffer and emits the signal - receivedStderr(). - @short Called by slotChildError() this function copies data arriving from the child process' stderr to the respective buffer and emits the signal receivedStderr(). - */ - protected native int childError(int fdno); - /** - This slot gets activated when data from the child's stdout arrives. - It usually calls childOutput(). - @param fdno the file descriptor for the output - @short This slot gets activated when data from the child's stdout arrives. - */ - protected native void slotChildOutput(int fdno); - /** - This slot gets activated when data from the child's stderr arrives. - It usually calls childError(). - @param fdno the file descriptor for the output - @short This slot gets activated when data from the child's stderr arrives. - */ - protected native void slotChildError(int fdno); - /** - Called when another bulk of data can be sent to the child's - stdin. If there is no more data to be sent to stdin currently - available, this function must disable the TQSocketNotifier innot. - @param dummy ignore this argument - @short Called when another bulk of data can be sent to the child's stdin. - */ - protected native void slotSendData(int dummy); - /** Deletes the wrapped C++ instance */ - protected native void finalize() throws InternalError; - /** Delete the wrapped C++ instance ahead of finalize() */ - public native void dispose(); - /** Has the wrapped C++ instance been deleted? */ - public native boolean isDisposed(); -} |