2N/A * The contents of this file are subject to the terms of the 2N/A * Common Development and Distribution License (the "License"). 2N/A * You may not use this file except in compliance with the License. 2N/A * See the License for the specific language governing permissions 2N/A * and limitations under the License. 2N/A * When distributing Covered Code, include this CDDL HEADER in each 2N/A * If applicable, add the following below this CDDL HEADER, with the 2N/A * fields enclosed by brackets "[]" replaced with your own identifying 2N/A * information: Portions Copyright [yyyy] [name of copyright owner] 2N/A * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 2N/A * Use is subject to license terms. 2N/A * ident "%Z%%M% %I% %E% SMI" 2N/A * State of a target process designated by {@link 2N/A * Consumer#createProcess(String command)} or {@link 2N/A * Consumer#grabProcess(int pid)}. 2N/A * @see ConsumerListener#processStateChanged(ProcessEvent e) 2N/A * @author Tom Erickson 2N/A "terminationSignal",
"terminationSignalName",
2N/A "exitStatus",
"message"})
2N/A * Need to prevent DefaultPersistenceDelegate from using 2N/A * overridden equals() method, resulting in a 2N/A * StackOverFlowError. Revert to PersistenceDelegate 2N/A * implementation. See 2N/A * State of a target process. 2N/A /** Process is running. */ 2N/A /** Process is stopped. */ 2N/A /** Process is lost to control. */ 2N/A /** Process is terminated (zombie). */ 2N/A /** Process is terminated (core file). */ 2N/A * Creates a {@code ProcessState} instance with the given state. 2N/A * @param pid non-negative target process ID 2N/A * @param processState target process state 2N/A * @param processTerminationSignal signal that terminated the target 2N/A * process, {@code -1} if the process was not terminated by a signal 2N/A * or if the terminating signal is unknown 2N/A * @param processTerminationSignalName name of the signal that 2N/A * terminated the target process, {@code null} if the process was 2N/A * not terminated by a signal or if the terminating signal is 2N/A * @param processExitStatus target process exit status, {@code null} 2N/A * if the process has not exited or the exit status is unknown 2N/A * @param msg message included by DTrace, if any 2N/A * @throws NullPointerException if the given process state is {@code 2N/A * @throws IllegalArgumentException if the given process ID is negative 2N/A * Supports XML persistence. 2N/A * @see #ProcessState(int pid, State processState, int 2N/A * processTerminationSignal, String processTerminationSignalName, 2N/A * Integer processExitStatus, String msg) 2N/A * @throws IllegalArgumentException if there is no {@link 2N/A * ProcessState.State} value with the given state name. 2N/A * Gets the process ID. 2N/A * @return non-negative target process ID 2N/A * Gets the process state. 2N/A * @return non-null target process state 2N/A * Gets the signal that terminated the process. 2N/A * @return termination signal, {@code -1} if the process was not 2N/A * terminated by a signal or if the terminating signal is unknown 2N/A * Gets the name of the signal that terminated the process. 2N/A * @return termination signal name, {@code null} if the process was 2N/A * not terminated by a signal or if the terminating signal is 2N/A * Gets the process exit status. 2N/A * @return exit status, or {@code null} if the process has not 2N/A * exited or the exit status is unknown 2N/A * Called by native code. 2N/A * Gets the message from DTrace describing this process state. 2N/A * @return DTrace message, or {@code null} if DTrace did not include 2N/A * a message with this process state 2N/A * Compares the specified object with this {@code ProcessState} 2N/A * instance for equality. Defines equality as having the same 2N/A * @return {@code true} if and only if the specified object is also 2N/A * a {@code ProcessState} and both instances have the same 2N/A * Overridden to ensure that equal instances have equal hash codes. 2N/A // check class invariants 2N/A * Gets a string representation of this process state useful for 2N/A * logging and not intended for display. The exact details of the 2N/A * representation are unspecified and subject to change, but the 2N/A * following format may be regarded as typical: 2N/A * class-name[property1 = value1, property2 = value2]