| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| <html> |
| <head> |
| <title>Target Communication Framework Services - Processes</title> |
| </head> |
| |
| <body lang='EN-US'> |
| |
| <h1>Target Communication Framework Services - Processes</h1> |
| |
| <ul> |
| <li><a href='#VersionHistory'>Version History</a> |
| <li><a href='#Overview'>Overview</a> |
| <li><a href='#Cmds'>Commands</a> |
| <ul> |
| <li><a href='#CmdGetContext'>Get Context</a> |
| <li><a href='#CmdGetChildren'>Get Children</a> |
| <li><a href='#CmdAttach'>Attach</a> |
| <li><a href='#CmdDetach'>Detach</a> |
| <li><a href='#CmdTerminate'>Terminate</a> |
| <li><a href='#CmdGetSignalList'>Get Signal List</a> |
| <li><a href='#CmdGetSignalMask'>Get Signal Mask</a> |
| <li><a href='#CmdSetSignalMask'>Set Signal Mask</a> |
| <li><a href='#CmdSignal'>Signal</a> |
| <li><a href='#CmdGetEnvironment'>Get Environment</a> |
| <li><a href='#CmdStart'>Start</a> |
| </ul> |
| <li><a href='#Events'>Events</a> |
| <li><a href='#API'>API</a> |
| </ul> |
| |
| <h1>Processes Service</h1> |
| |
| <h2><a name='VersionHistory'>Version History</a></h2> |
| |
| <table border=1 cellpadding=8> |
| <tr> |
| <th>Version |
| <th>Date |
| <th>Change |
| <tr> |
| <td>0.1 |
| <td>2008-01-10 |
| <td>Initial contribution |
| <tr> |
| <td>0.2 |
| <td>2009-02-26 |
| <td>Added signal and environment commands, and properties for standard I/O redirection |
| </table> |
| |
| <h2><a name='Overview'>Overview</a></h2> |
| |
| <p>Processes service provides access to the target OS's process |
| information, allows to start and terminate a process, and allows |
| to attach and detach a process for debugging. Debug services, |
| like Memory and Run Control, require a process to be attached |
| before they can access it.</p> |
| |
| <p>If a process is started by this service, its standard input/output streams are |
| available for client to read/write using <a href='TCF Service - Streams.html'>Streams Service</a>. Stream type of such |
| streams is set to "Processes".</p> |
| |
| <p>Command and event parameters are encoded |
| as zero terminated <a href='TCF Specification.html#JSON'>JSON</a> strings.</p> |
| |
| <p>The service uses standard format for error reports, |
| see <a href='TCF Services.html#ErrorFormat'>Error Report Format</a>.</p> |
| |
| <h2><a name='Cmds'>Commands</a></h2> |
| |
| <h3><a name='CmdGetContext'>Get Context</a></h3> |
| |
| <pre><b><font face="Courier New" size=2 color=#333399> |
| C • <i><token></i> • Processes • getContext • <i><string: context ID></i> • |
| </font></b></pre> |
| |
| <p>The command retrieves context info for given context ID. |
| A context corresponds to an execution thread, process, address space, etc. |
| Context IDs are valid across TCF services, so it is allowed to issue 'Processes.getContext' |
| command with a context that was obtained, for example, from Memory service. |
| However, 'Processes.getContext' is supposed to return only process specific data. |
| If the ID is not a process ID, 'Processes.getContext' may not return any |
| useful information. |
| </p> |
| |
| <p>Reply:</p> |
| |
| <pre><b><font face="Courier New" size=2 color=#333399> |
| R • <i><token></i> • <i><error report></i> • <i><context data></i> • |
| |
| <i><context data></i> |
| ⇒ null |
| ⇒ <i><object></i> |
| </font></b></pre> |
| |
| <p>Context data object should, at least, contain member |
| <b><font face="Courier New" size=2 color=#333399>"ID" : <i><string>.</i></font></b> |
| </p> |
| |
| <p>Predefined process context properties are:</p> |
| <ul> |
| <li><code><b><font face="Courier New" size=2 color=#333399>"ID" : <i><string></i></font></b></code> |
| - ID of the context, same as getContext command argument. |
| |
| <li><code><b><font face="Courier New" size=2 color=#333399>"ParentID" : <i><string></i></font></b></code> |
| - parent context ID. |
| |
| <li><code><b><font face="Courier New" size=2 color=#333399>"Name" : <i><string></i></font></b></code> |
| - process name. Client UI can show this name to a user. |
| |
| <li><code><b><font face="Courier New" size=2 color=#333399>"Attached" : <i><boolean></i></font></b></code> |
| - true if the context is attached to debugger. |
| |
| <li><code><b><font face="Courier New" size=2 color=#333399>"CanTerminate" : <i><boolean></i></font></b></code> |
| - true if the service can terminate the process. |
| |
| <li><code><b><font face="Courier New" size=2 color=#333399>"StdInID" : <i><string></i></font></b></code> |
| - process standard input stream ID. |
| |
| <li><code><b><font face="Courier New" size=2 color=#333399>"StdOutID" : <i><string></i></font></b></code> |
| - process standard output stream ID. |
| |
| <li><code><b><font face="Courier New" size=2 color=#333399>"StdErrID" : <i><string></i></font></b></code> |
| - process standard error stream ID. |
| </ul> |
| |
| <h3><a name='CmdGetChildren'>Get Children</a></h3> |
| |
| <pre><b><font face="Courier New" size=2 color=#333399> |
| C • <i><token></i> • Processes • getChildren • <i><string: parent context ID></i> • <i><boolean: attached only></i> • |
| </font></b></pre> |
| |
| <p>The command requests a list of contexts available for process control commands.</p> |
| |
| <p>Parent context ID can be null – to retrieve top level of the hierarchy, can be one |
| of context IDs retrieved by previous getChildren commands, or it can be obtained from another service. |
| Contexts hierarchy can be simple plain list or it can form a tree. It is up to target agent developers to |
| choose layout that is most descriptive for a given target.</p> |
| <p>If <i><boolean: attached only></i> is true, the command returns only those processes that are attached for debugging.</p> |
| |
| <p>Reply:</p> |
| |
| <pre><b><font face="Courier New" size=2 color=#333399> |
| R • <i><token></i> • <i><error report></i> • <i><array of context IDs></i> • |
| |
| <i><array of context IDs></i> |
| ⇒ null |
| ⇒ [ ] |
| ⇒ [ <i><context ID list></i> ] |
| |
| <i><context ID list></i> |
| ⇒ <i><string: context ID></i> |
| ⇒ <i><context ID list></i> , <i><string: context ID></i> |
| </font></b></pre> |
| |
| <h3><a name='CmdAttach'>Attach</a></h3> |
| |
| <pre><b><font face="Courier New" size=2 color=#333399> |
| C • <i><token></i> • Processes • attach • <i><string: context ID></i> • |
| </font></b></pre> |
| |
| <p>The command attaches debugger to a process. |
| Services like Run Control, Memory, Breakpoints work only with attached processes.</p> |
| |
| <p>Reply:</p> |
| |
| <pre><b><font face="Courier New" size=2 color=#333399> |
| R • <i><token></i> • <i><error report></i> • |
| </font></b></pre> |
| |
| <h3><a name='CmdDetach'>Detach</a></h3> |
| |
| <pre><b><font face="Courier New" size=2 color=#333399> |
| C • <i><token></i> • Processes • detach • <i><string: context ID></i> • |
| </font></b></pre> |
| |
| <p>The command detaches debugger from a process.</p> |
| |
| <p>Reply:</p> |
| |
| <pre><b><font face="Courier New" size=2 color=#333399> |
| R • <i><token></i> • <i><error report></i> • |
| </font></b></pre> |
| |
| <h3><a name='CmdTerminate'>Terminate</a></h3> |
| |
| <pre><b><font face="Courier New" size=2 color=#333399> |
| C • <i><token></i> • Processes • terminate • <i><string: context ID></i> • |
| </font></b></pre> |
| |
| <p>The command terminates a process.</p> |
| |
| <p>Reply:</p> |
| |
| <pre><b><font face="Courier New" size=2 color=#333399> |
| R • <i><token></i> • <i><error report></i> • |
| </font></b></pre> |
| |
| <h3><a name='CmdGetSignalList'>Get Signal List</a></h3> |
| |
| <pre><b><font face="Courier New" size=2 color=#333399> |
| C • <i><token></i> • Processes • getSignalList • <i><string: context ID></i> • |
| </font></b></pre> |
| |
| <p>The command returns a complete list of available signals. The list containg all signals that can be sent to a given context.</p> |
| |
| <p>Reply:</p> |
| |
| <pre><b><font face="Courier New" size=2 color=#333399> |
| R • <i><token></i> • <i><error report></i> • <i><array of signal descriptions></i> • |
| |
| <i><array of signal descriptions></i> |
| ⇒ null |
| ⇒ [ ] |
| ⇒ [ <i><signal description list></i> ] |
| |
| <i><signal description list></i> |
| ⇒ <i><object: signal description></i> |
| ⇒ <i><signal description list></i> , <i><object: signal description></i> |
| </font></b></pre> |
| |
| <p>Signal description is a list of properties. Predefined signal properties are:</p> |
| <ul> |
| <li><code><b><font face="Courier New" size=2 color=#333399>"Index" : <i><int></i></font></b></code> |
| - bit position of the signal in bitsets that are used by Get Signal Mask and Set Signal Mask commands. |
| |
| <li><code><b><font face="Courier New" size=2 color=#333399>"Name" : <i><string></i></font></b></code> |
| - signal name. Client UI can show this name to a user. |
| |
| <li><code><b><font face="Courier New" size=2 color=#333399>"Code" : <i><string></i></font></b></code> |
| - human readable description of the signal. |
| </ul> |
| |
| |
| <h3><a name='CmdGetSignalMask'>Get Signal Mask</a></h3> |
| |
| <pre><b><font face="Courier New" size=2 color=#333399> |
| C • <i><token></i> • Processes • getSignalMask • <i><string: context ID></i> • |
| </font></b></pre> |
| |
| <p>The command returns signal mask of a process or a thread. |
| Bits in the mask control how signals should be handled by debug agent. |
| When new context is created it inherits the mask from its parent. |
| If context is not attached the command will return an error.</p> |
| |
| <p>Reply:</p> |
| |
| <pre><b><font face="Courier New" size=2 color=#333399> |
| R • <i><token></i> • <i><error report></i> • <i><int: don't stop bitset></i> • <i><int: don't pass bitset></i> • <i><int: pending bitset></i> • |
| </font></b></pre> |
| <ul> |
| <li>don't stop bitset - signals that should suspend execution of the context. |
| <li>don't pass bitset - signals that should not be delivered to the context. |
| <li>pending bitset - signals that are generated but not delivered yet. |
| </ul> |
| Note: "pending bitset" is meaningful only if the context is suspended. |
| |
| <h3><a name='CmdSetSignalMask'>Set Signal Mask</a></h3> |
| |
| <pre><b><font face="Courier New" size=2 color=#333399> |
| C • <i><token></i> • Processes • setSignalMask • <i><string: context ID></i> • <i><int: don't stop bitset></i> • <i><int: don't pass bitset></i> • |
| </font></b></pre> |
| |
| <p>The command sets signal mask of a process or a thread. |
| Bits in the mask control how signals should be handled by debug agent. |
| If context is not attached the command will return an error.</p> |
| <ul> |
| <li>don't stop bitset - signals that should not suspend execution of the context. |
| By default, debugger suspends a process before it receives a signal. |
| <li>don't pass bitset - signals that should not be delivered to the context. |
| </ul> |
| |
| <p>Reply:</p> |
| |
| <pre><b><font face="Courier New" size=2 color=#333399> |
| R • <i><token></i> • <i><error report></i> • |
| </font></b></pre> |
| |
| <h3><a name='CmdSignal'>Signal</a></h3> |
| |
| <pre><b><font face="Courier New" size=2 color=#333399> |
| C • <i><token></i> • Processes • signal • <i><string: context ID></i> • <i><int: signal></i> • |
| </font></b></pre> |
| |
| <p>The command sends a signal to a context.</p> |
| |
| <p>Reply:</p> |
| |
| <pre><b><font face="Courier New" size=2 color=#333399> |
| R • <i><token></i> • <i><error report></i> • |
| </font></b></pre> |
| |
| <h3><a name='CmdGetEnvironment'>Get Environment</a></h3> |
| |
| <pre><b><font face="Courier New" size=2 color=#333399> |
| C • <i><token></i> • Processes • getEnvironment • |
| </font></b></pre> |
| |
| <p>The command returns default set of environment variables used to start a new process.</p> |
| |
| <p>Reply:</p> |
| |
| <pre><b><font face="Courier New" size=2 color=#333399> |
| R • <i><token></i> • <i><error report></i> • <i><string array: environment variables></i> • |
| |
| <i><string array></i> |
| ⇒ null |
| ⇒ [ ] |
| ⇒ [ <i><string list></i> ] |
| |
| <i><string list></i> |
| ⇒ <i><string></i> |
| ⇒ <i><string list></i> , <i><string></i> |
| </font></b></pre> |
| |
| <h3><a name='CmdStart'>Start</a></h3> |
| |
| <pre><b><font face="Courier New" size=2 color=#333399> |
| C • <i><token></i> • Processes • start • <i><string: working directory></i> • <i><string: program image file></i> • |
| <i><string array: command line></i> • <i><string array: environment variables></i> • <i><boolean: attach></i> • |
| </font></b></pre> |
| |
| <p>The command starts a new process on remote machine. |
| <ul> |
| <li><i><string: working directory></i> - initial value of working directory for the process. |
| <li><i><string: program image file></i> - image file to start process with. |
| <li><i><string array: command line></i> - command line arguments for the process. |
| Note: the service does NOT add image file name as first argument for the process. |
| If a client wants first parameter to be the file name, it should add it itself. |
| <li><i><string array: environment variables></i> - list of environment variables for the process, |
| they will be added to default process environment. |
| <li><i><boolean: attach></i> - if true debugger should be attached to the process.</p> |
| </ul> |
| |
| <p>Reply:</p> |
| |
| <pre><b><font face="Courier New" size=2 color=#333399> |
| R • <i><token></i> • <i><error report></i> • <i><context data></i> • |
| </font></b></pre> |
| |
| <p>On success the command returns context data for created process. Context data has same format as Get Context result.</p> |
| |
| <h2><a name='Events'>Events</a></h2> |
| |
| <p>Processes service broadcasts notification event when a proceess exits. |
| Only processes that were started by the service will generate exit event.</p> |
| |
| <pre><b><font face="Courier New" size=2 color=#333399> |
| E • Processes • exited • <i><string: process ID></i> • <i><int: exit code></i> • |
| </font></b></pre> |
| |
| <h2><a name='API'>API</a></h2> |
| |
| <pre> |
| <font color=#7F0055>public interface</font> IProcesses <font color=#7F0055>extends</font> IService { |
| |
| <font color=#7F0055>static final</font> String NAME = "Processes"; |
| |
| <font color=#3F5FBF>/** |
| * Retrieve context info for given context ID. |
| * A context corresponds to an execution thread, process, address space, etc. |
| * Context IDs are valid across TCF services, so it is allowed to issue |
| * 'IProcesses.getContext' command with a context that was obtained, |
| * for example, from Memory service. |
| * However, 'Processes.getContext' is supposed to return only process specific data, |
| * If the ID is not a process ID, 'IProcesses.getContext' may not return any |
| * useful information |
| * |
| * <font color=#7F9FBF>@param</font> id – context ID. |
| * <font color=#7F9FBF>@param</font> done - call back interface called when operation is completed. |
| */</font> |
| IToken getContext(String id, DoneGetContext done); |
| |
| <font color=#3F5FBF>/** |
| * Client call back interface for getContext(). |
| */</font> |
| <font color=#7F0055>interface</font> DoneGetContext { |
| <font color=#3F5FBF>/** |
| * Called when contexts data retrieval is done. |
| * <font color=#7F9FBF>@param</font> error – error description if operation failed, null if succeeded. |
| * <font color=#7F9FBF>@param</font> context – context data. |
| */</font> |
| <font color=#7F0055>void</font> doneGetContext(IToken token, Exception error, ProcessContext context); |
| } |
| |
| <font color=#3F5FBF>/** |
| * Retrieve children of given context. |
| * |
| * <font color=#7F9FBF>@param</font> parent_context_id – parent context ID. Can be null – |
| * to retrieve top level of the hierarchy, or one of context IDs retrieved |
| * by previous getContext or getChildren commands. |
| * <font color=#7F9FBF>@param</font> attached_only - if true return only attached process IDs. |
| * <font color=#7F9FBF>@param</font> done - call back interface called when operation is completed. |
| */</font> |
| IToken getChildren(String parent_context_id, <font color=#7F0055>boolean</font> attached_only, DoneGetChildren done); |
| |
| <font color=#3F5FBF>/** |
| * Client call back interface for getChildren(). |
| */</font> |
| <font color=#7F0055>interface</font> DoneGetChildren { |
| <font color=#3F5FBF>/** |
| * Called when contexts data retrieval is done. |
| * <font color=#7F9FBF>@param</font> error – error description if operation failed, null if succeeded. |
| * <font color=#7F9FBF>@param</font> context_ids – array of available context IDs. |
| */</font> |
| <font color=#7F0055>void</font> doneGetChildren(IToken token, Exception error, String[] context_ids); |
| } |
| |
| <font color=#3F5FBF>/** |
| * Context property names. |
| */</font> |
| <font color=#7F0055>static final</font> String |
| <font color=#3F5FBF>/** The TCF context ID */</font> |
| PROP_ID = "ID", |
| |
| <font color=#3F5FBF>/** The TCF parent context ID */</font> |
| PROP_PARENTID = "ParentID", |
| |
| <font color=#3F5FBF>/** Is the context attached */</font> |
| PROP_ATTACHED = "Attached", |
| |
| <font color=#3F5FBF>/** Can terminate the context */</font> |
| PROP_CAN_TERMINATE = "CanTerminate", |
| |
| <font color=#3F5FBF>/** Process name. Client UI can show this name to a user */</font> |
| PROP_NAME = "Name", |
| |
| <font color=#3F5FBF>/** Process standard input stream ID */</font> |
| PROP_STDIN_ID = "StdInID", |
| |
| <font color=#3F5FBF>/** Process standard output stream ID */</font> |
| PROP_STDOUT_ID = "StdOutID", |
| |
| <font color=#3F5FBF>/** Process standard error stream ID */</font> |
| PROP_STDERR_ID = "StdErrID"; |
| |
| <font color=#7F0055>interface</font> ProcessContext { |
| |
| <font color=#3F5FBF>/** |
| * Get context ID. |
| * Same as getProperties().get(“ID”) |
| */</font> |
| String getID(); |
| |
| <font color=#3F5FBF>/** |
| * Get parent context ID. |
| * Same as getProperties().get(“ParentID”) |
| */</font> |
| String getParentID(); |
| |
| <font color=#3F5FBF>/** |
| * Get process name. |
| * Client UI can show this name to a user. |
| * Same as getProperties().get(“Name”) |
| */</font> |
| String getName(); |
| |
| <font color=#3F5FBF>/** |
| * Utility method to read context property PROP_ATTACHED. |
| * Services like IRunControl, IMemory, IBreakpoints work only with attached processes. |
| * <font color=#7F9FBF>@return</font> value of PROP_ATTACHED. |
| */</font> |
| <font color=#7F0055>boolean</font> isAttached(); |
| |
| <font color=#3F5FBF>/** |
| * Utility method to read context property PROP_CAN_TERMINATE. |
| * <font color=#7F9FBF>@return</font> value of PROP_CAN_TERMINATE. |
| */</font> |
| <font color=#7F0055>boolean</font> canTerminate(); |
| |
| <font color=#3F5FBF>/** |
| * Get all available context properties. |
| * <font color=#7F9FBF>@return</font> Map 'property name' -> 'property value' |
| */</font> |
| Map<String, Object> getProperties(); |
| |
| <font color=#3F5FBF>/** |
| * Attach debugger to a process. |
| * Services like IRunControl, IMemory, IBreakpoints work only with attached processes. |
| * <font color=#7F9FBF>@param</font> done - call back interface called when operation is completed. |
| * <font color=#7F9FBF>@return</font> pending command handle, can be used to cancel the command. |
| */</font> |
| IToken attach(DoneCommand done); |
| |
| <font color=#3F5FBF>/** |
| * Detach debugger from a process. |
| * Process execution will continue without debugger supervision. |
| * <font color=#7F9FBF>@param</font> done - call back interface called when operation is completed. |
| * <font color=#7F9FBF>@return</font> pending command handle, can be used to cancel the command. |
| */</font> |
| IToken detach(DoneCommand done); |
| |
| <font color=#3F5FBF>/** |
| * Terminate a process. |
| * <font color=#7F9FBF>@param</font> done - call back interface called when operation is completed. |
| * <font color=#7F9FBF>@return</font> pending command handle, can be used to cancel the command. |
| */</font> |
| IToken terminate(DoneCommand done); |
| } |
| |
| <font color=#7F0055>interface</font> DoneCommand { |
| <font color=#7F0055>void</font> doneCommand(IToken token, Exception error); |
| } |
| |
| <font color=#3F5FBF>/** |
| * Signal property names used by "getSignalList" command. |
| */</font> |
| <font color=#7F0055>static final</font> String |
| <font color=#3F5FBF>/** Number, bit position in the signal mask */</font> |
| SIG_INDEX = "Index", |
| |
| <font color=#3F5FBF>/** String, signal name, for example "SIGHUP" */</font> |
| SIG_NAME = "Name", |
| |
| <font color=#3F5FBF>/** Number, signal code, as defined by OS */</font> |
| SIG_CODE = "Code", |
| |
| <font color=#3F5FBF>/** String, human readable description of the signal */</font> |
| SIG_DESCRIPTION = "Description"; |
| |
| <font color=#3F5FBF>/** |
| * Get list of signals that can be send to the context. |
| * <font color=#7F9FBF>@param</font> done - call back interface called when operation is completed. |
| * <font color=#7F9FBF>@return</font> pending command handle, can be used to cancel the command. |
| */</font> |
| IToken getSignalList(String context_id, DoneGetSignalList done); |
| |
| <font color=#3F5FBF>/** |
| * Call-back interface to be called when "getSignalList" command is complete. |
| */</font> |
| <font color=#7F0055>interface</font> DoneGetSignalList { |
| <font color=#7F0055>void</font> doneGetSignalList(IToken token, Exception error, Collection<Map<String,Object>> list); |
| } |
| |
| <font color=#3F5FBF>/** |
| * Get process or thread signal mask. |
| * Bits in the mask control how signals should be handled by debug agent. |
| * When new context is created it inherits the mask from its parent. |
| * If context is not attached the command will return an error. |
| * <font color=#7F9FBF>@param</font> done - call back interface called when operation is completed. |
| * <font color=#7F9FBF>@return</font> pending command handle, can be used to cancel the command. |
| */</font> |
| IToken getSignalMask(String context_id, DoneGetSignalMask done); |
| |
| <font color=#3F5FBF>/** |
| * Call-back interface to be called when "getSignalMask" command is complete. |
| */</font> |
| <font color=#7F0055>interface</font> DoneGetSignalMask { |
| <font color=#3F5FBF>/** |
| * <font color=#7F9FBF>@param</font> token - command handle. |
| * <font color=#7F9FBF>@param</font> dont_stop - bit-set of signals that should suspend execution of the context. |
| * <font color=#7F9FBF>@param</font> dont_pass - bit-set of signals that should not be delivered to the context. |
| * <font color=#7F9FBF>@param</font> pending - bit-set of signals that are generated but not delivered yet. |
| * Note: "pending" is meaningful only if the context is suspended. |
| */</font> |
| <font color=#7F0055>void</font> doneGetSignalMask(IToken token, Exception error, <font color=#7F0055>int</font> dont_stop, <font color=#7F0055>int</font> dont_pass, <font color=#7F0055>int</font> pending); |
| } |
| |
| <font color=#3F5FBF>/** |
| * Set process or thread signal mask. |
| * Bits in the mask control how signals should be handled by debug agent. |
| * If context is not attached the command will return an error. |
| * <font color=#7F9FBF>@param</font> dont_stop - bit-set of signals that should not suspend execution of the context. |
| * By default, debugger suspends a context before it receives a signal. |
| * <font color=#7F9FBF>@param</font> dont_pass - bit-set of signals that should not be delivered to the context. |
| * <font color=#7F9FBF>@param</font> done - call back interface called when operation is completed. |
| * <font color=#7F9FBF>@return</font> pending command handle, can be used to cancel the command. |
| */</font> |
| IToken setSignalMask(String context_id, <font color=#7F0055>int</font> dont_stop, <font color=#7F0055>int</font> dont_pass, DoneCommand done); |
| |
| <font color=#3F5FBF>/** |
| * Send a signal to a process or thread. |
| * <font color=#7F9FBF>@param</font> context_id - context ID. |
| * <font color=#7F9FBF>@param</font> signal - signal code. |
| * <font color=#7F9FBF>@param</font> done - call back interface called when operation is completed. |
| * <font color=#7F9FBF>@return</font> pending command handle, can be used to cancel the command. |
| */</font> |
| IToken signal(String context_id, <font color=#7F0055>long</font> signal, DoneCommand done); |
| |
| <font color=#3F5FBF>/** |
| * Get default set of environment variables used to start a new process. |
| * <font color=#7F9FBF>@param</font> done - call back interface called when operation is completed. |
| * <font color=#7F9FBF>@return</font> pending command handle, can be used to cancel the command. |
| */</font> |
| IToken getEnvironment(DoneGetEnvironment done); |
| |
| <font color=#3F5FBF>/** |
| * Call-back interface to be called when "getEnvironment" command is complete. |
| */</font> |
| <font color=#7F0055>interface</font> DoneGetEnvironment { |
| <font color=#7F0055>void</font> doneGetEnvironment(IToken token, Exception error, Map<String,String> environment); |
| } |
| |
| <font color=#3F5FBF>/** |
| * Start a new process on remote machine. |
| * <font color=#7F9FBF>@param</font> directory - initial value of working directory for the process. |
| * <font color=#7F9FBF>@param</font> file - process image file. |
| * <font color=#7F9FBF>@param</font> command_line - command line arguments for the process. |
| * Note: the service does NOT add image file name as first argument for the process. |
| * If a client wants first parameter to be the file name, it should add it itself. |
| * <font color=#7F9FBF>@param</font> environment - list of environment variables for the process. |
| * if null then default set of environment variables will be used. |
| * <font color=#7F9FBF>@param</font> attach - if true debugger should be attached to the process. |
| * <font color=#7F9FBF>@param</font> done - call back interface called when operation is completed. |
| * <font color=#7F9FBF>@return</font> pending command handle, can be used to cancel the command. |
| */</font> |
| IToken start(String directory, String file, |
| String[] command_line, String[] environment, <font color=#7F0055>boolean</font> attach, DoneStart done); |
| |
| <font color=#3F5FBF>/** |
| * Call-back interface to be called when "start" command is complete. |
| */</font> |
| <font color=#7F0055>interface</font> DoneStart { |
| <font color=#7F0055>void</font> doneStart(IToken token, Exception error, ProcessContext process); |
| } |
| |
| <font color=#3F5FBF>/** |
| * Add processes service event listener. |
| * <font color=#7F9FBF>@param</font> listener - event listener implementation. |
| */</font> |
| <font color=#7F0055>void</font> addListener(ProcessesListener listener); |
| |
| <font color=#3F5FBF>/** |
| * Remove processes service event listener. |
| * <font color=#7F9FBF>@param</font> listener - event listener implementation. |
| */</font> |
| <font color=#7F0055>void</font> removeListener(ProcessesListener listener); |
| |
| <font color=#3F5FBF>/** |
| * Process event listener is notified when a process exits. |
| * Event are reported only for processes that were started by 'start' command. |
| */</font> |
| <font color=#7F0055>interface</font> ProcessesListener { |
| |
| <font color=#3F5FBF>/** |
| * Called when a process exits. |
| * <font color=#7F9FBF>@param</font> process_id - process context ID |
| * <font color=#7F9FBF>@param</font> exit_code - process exit code |
| */</font> |
| <font color=#7F0055>void</font> exited(String process_id, <font color=#7F0055>int</font> exit_code); |
| } |
| } |
| </pre> |
| |
| </body> |
| </html> |