diff options
author | fburton | 2008-05-10 01:35:19 +0000 |
---|---|---|
committer | fburton | 2008-05-10 01:35:19 +0000 |
commit | e5d17e159a17f6958055e0481c461fd662a7b71c (patch) | |
tree | 13c998255235b5d4348534421912b8b1f5061395 /docs | |
parent | 3e13131ea2c6e6a4a21ca4cef9e2f1720146c435 (diff) | |
download | org.eclipse.tcf-e5d17e159a17f6958055e0481c461fd662a7b71c.tar.gz org.eclipse.tcf-e5d17e159a17f6958055e0481c461fd662a7b71c.tar.xz org.eclipse.tcf-e5d17e159a17f6958055e0481c461fd662a7b71c.zip |
Replaced non-ASCII characters with named HTML character entities
Diffstat (limited to 'docs')
-rw-r--r-- | docs/TCF Service - Breakpoints.html | 88 | ||||
-rw-r--r-- | docs/TCF Service - File System.html | 106 | ||||
-rw-r--r-- | docs/TCF Service - Memory.html | 370 | ||||
-rw-r--r-- | docs/TCF Service - Processes.html | 74 | ||||
-rw-r--r-- | docs/TCF Service - Registers.html | 70 | ||||
-rw-r--r-- | docs/TCF Service - Run Control.html | 120 | ||||
-rw-r--r-- | docs/TCF Service - Stack Trace.html | 54 | ||||
-rw-r--r-- | docs/TCF Service - System Monitor.html | 90 | ||||
-rw-r--r-- | docs/TCF Services.html | 18 | ||||
-rw-r--r-- | docs/TCF Specification.html | 960 |
10 files changed, 975 insertions, 975 deletions
diff --git a/docs/TCF Service - Breakpoints.html b/docs/TCF Service - Breakpoints.html index 14a2656f4..e4c868757 100644 --- a/docs/TCF Service - Breakpoints.html +++ b/docs/TCF Service - Breakpoints.html @@ -101,19 +101,19 @@ see <a href='TCF Services.html#ErrorFormat'>Error Report Format</a>.</p> <h3><a name='CmdSet'>Set</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> Breakpoints set <i><array of breakpoints></i> +C • <i><token></i> • Breakpoints • set • <i><array of breakpoints></i> • <i><array of breakpoints></i> - <font face=Wingdings>Ψ</font> null - <font face=Wingdings>Ψ</font> [ ] - <font face=Wingdings>Ψ</font> [ <i><breakpoints list></i> ] + ⇒ null + ⇒ [ ] + ⇒ [ <i><breakpoints list></i> ] <i><breakpoints list></i> - <font face=Wingdings>Ψ</font> <i><breakpoint data></i> - <font face=Wingdings>Ψ</font> <i><breakpoints list></i>, <i><breakpoint data></i> + ⇒ <i><breakpoint data></i> + ⇒ <i><breakpoints list></i>, <i><breakpoint data></i> <i><breakpoint data></i> - <font face=Wingdings>Ψ</font> <i><object></i> + ⇒ <i><object></i> </font></b></pre> <p> The command downloads breakpoint data to a target agent. @@ -223,7 +223,7 @@ A breakpoint service implementation may not change the properties set by the cli <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> +R • <i><token></i> • <i><error report></i> • </font></b></pre> <p><b>Examples:</b></p> @@ -274,7 +274,7 @@ The following properties set a temporal breakpoint that stops <code>core0</code> <h3><a name='CmdAdd'>Add</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> Breakpoints add <i><breakpoint data></i> +C • <i><token></i> • Breakpoints • add • <i><breakpoint data></i> • </font></b></pre> <p>The command adds a breakpoint to the target agent breakpoint table. The host should send this command when the user creates a new breakpoint</p> @@ -282,13 +282,13 @@ C <i><token></i> Breakpoints add <i><breakpoint data></i> <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> +R • <i><token></i> • <i><error report></i> • </font></b></pre> <h3><a name='CmdChange'>Change</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> Breakpoints change <i><breakpoint data></i> +C • <i><token></i> • Breakpoints • change • <i><breakpoint data></i> • </font></b></pre> <p>The command updates the breakpoint data in the target agent breakpoint table. The host should send this command when the user modifies a breakpoint</p> @@ -296,25 +296,25 @@ C <i><token></i> Breakpoints change <i><breakpoint data></i> <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> +R • <i><token></i> • <i><error report></i> • </font></b></pre> <h3><a name='CmdEnable'>Enable</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> Breakpoints enable <i><array of breakpoint IDs></i> +C • <i><token></i> • Breakpoints • enable • <i><array of breakpoint IDs></i> • <i><array of breakpoint IDs></i> - <font face=Wingdings>Ψ</font> null - <font face=Wingdings>Ψ</font> [ ] - <font face=Wingdings>Ψ</font> [ <i><breakpoint IDs list></i> ] + ⇒ null + ⇒ [ ] + ⇒ [ <i><breakpoint IDs list></i> ] <i><breakpoint IDs list></i> - <font face=Wingdings>Ψ</font> <i><breakpoint ID></i> - <font face=Wingdings>Ψ</font> <i><breakpoint IDs list></i>, <i><breakpoint ID></i> + ⇒ <i><breakpoint ID></i> + ⇒ <i><breakpoint IDs list></i>, <i><breakpoint ID></i> <i><breakpoint ID></i> - <font face=Wingdings>Ψ</font> <i><string></i> + ⇒ <i><string></i> </font></b></pre> <p>The command enables a list of breakpoints - sets breakpoint property "Enabled" to true.</p> @@ -322,13 +322,13 @@ C <i><token></i> Breakpoints enable <i><array of breakpoint IDs <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> +R • <i><token></i> • <i><error report></i> • </font></b></pre> <h3><a name='CmdDisable'>Disable</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> Breakpoints disable <i><array of breakpoint IDs></i> +C • <i><token></i> • Breakpoints • disable • <i><array of breakpoint IDs></i> • </font></b></pre> <p>The command disables a list of breakpoints - sets breakpoint property "Enabled" to false.</p> @@ -336,13 +336,13 @@ C <i><token></i> Breakpoints disable <i><array of breakpoint ID <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> +R • <i><token></i> • <i><error report></i> • </font></b></pre> <h3><a name='CmdRemove'>Remove</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> Breakpoints remove <i><array of breakpoint IDs></i> +C • <i><token></i> • Breakpoints • remove • <i><array of breakpoint IDs></i> • </font></b></pre> <p>The command removes a list of breakpoints. Host should send this command when user deletes breakpoints.</p> @@ -350,13 +350,13 @@ C <i><token></i> Breakpoints remove <i><array of breakpoint IDs <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> +R • <i><token></i> • <i><error report></i> • </font></b></pre> <h3><a name='CmdGetIDs'>Get IDs</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> Breakpoints getIDs +C • <i><token></i> • Breakpoints • getIDs • </font></b></pre> <p>The command uploads IDs of breakpoints known to target agent, @@ -368,13 +368,13 @@ channels.</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 breakpoint IDs></i> +R • <i><token></i> • <i><error report></i> • <i><array of breakpoint IDs></i> • </font></b></pre> <h3><a name='CmdGetProperties'>Get Properties</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> Breakpoints getProperties <i><string: breakpoint ID></i> +C • <i><token></i> • Breakpoints • getProperties • <i><string: breakpoint ID></i> • </font></b></pre> <p>The command uploads the properties of the given breakpoint from the target agent breakpoint table.</p> @@ -382,13 +382,13 @@ C <i><token></i> Breakpoints getProperties <i><string: breakpoi <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> <i><breakpoint data></i> +R • <i><token></i> • <i><error report></i> • <i><breakpoint data></i> • </font></b></pre> <h3><a name='CmdGetStatus'>Get Status</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> Breakpoints getStatus <i><string: breakpoint ID></i> +C • <i><token></i> • Breakpoints • getStatus • <i><string: breakpoint ID></i> • </font></b></pre> <p>The command uploads the status of given the breakpoint from the target agent.</p> @@ -396,10 +396,10 @@ C <i><token></i> Breakpoints getStatus <i><string: breakpoint I <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> <i><breakpoint status></i> +R • <i><token></i> • <i><error report></i> • <i><breakpoint status></i> • <i><breakpoint status></i> - <font face=Wingdings>Ψ</font> <i><object></i> + ⇒ <i><object></i> </font></b></pre> <p>Breakpoint status consists of a list of status properties. All properties are optional. @@ -424,16 +424,16 @@ in a list of instance status data objects <pre><b><font face="Courier New" size=2 color=#333399> <i><array of instance status data></i> - <font face=Wingdings>Ψ</font> null - <font face=Wingdings>Ψ</font> [ ] - <font face=Wingdings>Ψ</font> [ <i><Instance status data list></i> ] + ⇒ null + ⇒ [ ] + ⇒ [ <i><Instance status data list></i> ] <i><Instance status data list></i> - <font face=Wingdings>Ψ</font> <i><Instance status data></i> - <font face=Wingdings>Ψ</font> <i><Instance staus data list></i>, <i><Instance status data></i> + ⇒ <i><Instance status data></i> + ⇒ <i><Instance staus data list></i>, <i><Instance status data></i> <i><Instance status data></i> - <font face=Wingdings>Ψ</font> <i><object></i> + ⇒ <i><object></i> </font></b></pre> <p>Instance status data consists of a list of properties pertaining to each installed instance of the breakpoint. @@ -449,7 +449,7 @@ in a list of instance status data objects <h3><a name='CmdGetCapabilities'>Get Capabilities</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> Breakpoints getCapabilities <i><string: context ID></i> +C • <i><token></i> • Breakpoints • getCapabilities • <i><string: context ID></i> • </font></b></pre> <p>The command reports breakpoint service capabilities to clients so they @@ -462,10 +462,10 @@ capabilities.</p> <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> <i><service capabilities></i> +R • <i><token></i> • <i><error report></i> • <i><service capabilities></i> • <i><service capabilities></i> - <font face=Wingdings>Ψ</font> <i><object></i> + ⇒ <i><object></i> </font></b></pre> <p>Service capabilities consist of a list of properties. All properties are optional. @@ -492,10 +492,10 @@ of breakpoint properties that was sent by a client to a target. The purpose of t let all clients know about breakpoints that were created by other clients.</p> <pre><b><font face="Courier New" size=2 color=#333399> -E Breakpoints status <i><string: breakpoint ID></i> <i><breakpoint status></i> -E Breakpoints contextAdded <i><array of breakpoints></i> -E Breakpoints contextChanged <i><array of breakpoints></i> -E Breakpoints contextRemoved <i><array of breakpoint IDs></i> +E • Breakpoints • status • <i><string: breakpoint ID></i> • <i><breakpoint status></i> • +E • Breakpoints • contextAdded • <i><array of breakpoints></i> • +E • Breakpoints • contextChanged • <i><array of breakpoints></i> • +E • Breakpoints • contextRemoved • <i><array of breakpoint IDs></i> • </font></b></pre> <dl> diff --git a/docs/TCF Service - File System.html b/docs/TCF Service - File System.html index 711b31fe4..dd10042bb 100644 --- a/docs/TCF Service - File System.html +++ b/docs/TCF Service - File System.html @@ -135,7 +135,7 @@ using a slash ('/') as the separator, and that will work as expected.</p> <pre><b><font face="Courier New" size=2 color=#333399> <i><file attributes></i> - <font face=Wingdings>Ψ</font> <i><object></i> + ⇒ <i><object></i> </font></b></pre> <p>All attributes are optional. @@ -212,7 +212,7 @@ defined by future versions of this protocol):</p> <h3><a name='CmdOpen'>open</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> FileSystem open <i><string: file name></i> <i><int: mode></i> <i><file attributes></i> +C • <i><token></i> • FileSystem • open • <i><string: file name></i> • <i><int: mode></i> • <i><file attributes></i> • </font></b></pre> <p>The command opens or creates a file on a remote system. If mode contains O_CREAT then new file is created, otherwise exsting @@ -222,11 +222,11 @@ the command parameters, a default value is used.</p> <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> <i><file handle></i> +R • <i><token></i> • <i><error report></i> • <i><file handle></i> • <i><file handle></i> - <font face=Wingdings>Ψ</font> null - <font face=Wingdings>Ψ</font> <i><string></i> + ⇒ null + ⇒ <i><string></i> </font></b></pre> <p>On success, the replay contains open file handle. The handle is encoded as a string of characters. Client should never try @@ -236,7 +236,7 @@ not needed any more. Server should close all files that were left open after cli <h3><a name='CmdClose'>close</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> FileSystem close <i><string: file handle></i> +C • <i><token></i> • FileSystem • close • <i><string: file handle></i> • </font></b></pre> <p>The command closes a handle, which was open by 'open' or 'opendir' commands.</p> @@ -244,13 +244,13 @@ C <i><token></i> FileSystem close <i><string: file handle></ <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> +R • <i><token></i> • <i><error report></i> • </font></b></pre> <h3><a name='CmdRead'>read</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> FileSystem read <i><string: file handle></i> <i><int: offset></i> <i><int: size></i> +C • <i><token></i> • FileSystem • read • <i><string: file handle></i> • <i><int: offset></i> • <i><int: size></i> • </font></b></pre> <p>The command reads bytes from an open file. @@ -266,7 +266,7 @@ or error. For e.g. device files this may return fewer bytes than requested.</p> <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><string: data></i> <i><error report></i> <i><boolean: eof></i> +R • <i><token></i> • <i><string: data></i> • <i><error report></i> • <i><boolean: eof></i> • </font></b></pre> <p><i><string: data></i> is Base64 encoded byte array of file data. Number of bytes is determined by the string length. @@ -275,7 +275,7 @@ R <i><token></i> <i><string: data></i> <i><error report> <h3><a name='CmdWrite'>write</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> FileSystem write <i><string: file handle></i> <i><int: offset></i> <i><string: data></i> +C • <i><token></i> • FileSystem • write • <i><string: file handle></i> • <i><int: offset></i> • <i><string: data></i> • </font></b></pre> <p>The command writes bytes into an open file. @@ -287,13 +287,13 @@ and then the data. <i><string: data></i> is Base64 encoded array of data b <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> +R • <i><token></i> • <i><error report></i> • </font></b></pre> <h3><a name='CmdStat'>stat</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> FileSystem stat <i><string: file name></i> +C • <i><token></i> • FileSystem • stat • <i><string: file name></i> • </font></b></pre> <p>The command retrieves file attributes.</p> @@ -301,13 +301,13 @@ C <i><token></i> FileSystem stat <i><string: file name></i> <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> <i><file attributes></i> +R • <i><token></i> • <i><error report></i> • <i><file attributes></i> • </font></b></pre> <h3><a name='CmdLStat'>lstat</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> FileSystem lstat <i><string: file name></i> +C • <i><token></i> • FileSystem • lstat • <i><string: file name></i> • </font></b></pre> <p>The command retrieves file attributes. @@ -316,13 +316,13 @@ Unlike 'stat', 'lstat' does not follow symbolic links.</p> <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> <i><file attributes></i> +R • <i><token></i> • <i><error report></i> • <i><file attributes></i> • </font></b></pre> <h3><a name='CmdFStat'>fstat</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> FileSystem fstat <i><string: file handle></i> +C • <i><token></i> • FileSystem • fstat • <i><string: file handle></i> • </font></b></pre> <p>The command retrieves file attributes for an open file (identified by the file handle).</p> @@ -330,13 +330,13 @@ C <i><token></i> FileSystem fstat <i><string: file handle></ <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> <i><file attributes></i> +R • <i><token></i> • <i><error report></i> • <i><file attributes></i> • </font></b></pre> <h3><a name='CmdSetStat'>setstat</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> FileSystem setstat <i><string: file name></i> <i><file attributes></i> +C • <i><token></i> • FileSystem • setstat • <i><string: file name></i> • <i><file attributes></i> • </font></b></pre> <p>The command sets file attributes. @@ -349,13 +349,13 @@ specified attributes.</p> <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> +R • <i><token></i> • <i><error report></i> • </font></b></pre> <h3><a name='CmdFSetStat'>fsetstat</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> FileSystem fsetstat <i><string: file handle></i> <i><file attributes></i> +C • <i><token></i> • FileSystem • fsetstat • <i><string: file handle></i> • <i><file attributes></i> • </font></b></pre> <p>The command sets file attributes for an open file (identified by the file handle). @@ -365,13 +365,13 @@ permissions or access times, as well as for truncating a file.</p> <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> +R • <i><token></i> • <i><error report></i> • </font></b></pre> <h3><a name='CmdOpenDir'>opendir</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> FileSystem opendir <i><string: path></i> +C • <i><token></i> • FileSystem • opendir • <i><string: path></i> • </font></b></pre> <p>The command opens a directory for reading. @@ -384,13 +384,13 @@ should be closed regardless of whether a read errors have occurred or not.</p> <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> <i><file handle></i> +R • <i><token></i> • <i><error report></i> • <i><file handle></i> • </font></b></pre> <h3><a name='CmdReadDir'>readdir</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> FileSystem readdir <i><string: file handle></i> +C • <i><token></i> • FileSystem • readdir • <i><string: file handle></i> • </font></b></pre> <p>The command returns one @@ -405,19 +405,19 @@ response.</p> <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><array of directory entries></i> <i><error report></i> <i><boolean: eof></i> +R • <i><token></i> • <i><array of directory entries></i> • <i><error report></i> • <i><boolean: eof></i> • <i><array of directory entries></i> - <font face=Wingdings>Ψ</font> null - <font face=Wingdings>Ψ</font> [ ] - <font face=Wingdings>Ψ</font> [ <i><directory entry list></i> ] + ⇒ null + ⇒ [ ] + ⇒ [ <i><directory entry list></i> ] <i><directory entry list></i> - <font face=Wingdings>Ψ</font> <i><directory entry></i> - <font face=Wingdings>Ψ</font> <i><directory entry list></i> , <i><directory entry></i> + ⇒ <i><directory entry></i> + ⇒ <i><directory entry list></i> , <i><directory entry></i> <i><directory entry></i> - <font face=Wingdings>Ψ</font> <i><object></i> + ⇒ <i><object></i> </font></b></pre> <p>Directory entry attributes are:</p> @@ -435,7 +435,7 @@ R <i><token></i> <i><array of directory entries></i> <i><er <h3><a name='CmdMkDir'>mkdir</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> FileSystem mkdir <i><string: directory path></i> <i><file attributes></i> +C • <i><token></i> • FileSystem • mkdir • <i><string: directory path></i> • <i><file attributes></i> • </font></b></pre> <p>The command creates a directory on the server. @@ -445,13 +445,13 @@ C <i><token></i> FileSystem mkdir <i><string: directory path> <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> +R • <i><token></i> • <i><error report></i> • </font></b></pre> <h3><a name='CmdRmDir'>rmdir</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> FileSystem rmdir <i><string: directory path></i> +C • <i><token></i> • FileSystem • rmdir • <i><string: directory path></i> • </font></b></pre> <p>The command removes a directory. @@ -463,13 +463,13 @@ directory. <i><string: directory path></i> - specifies the directory to be <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> +R • <i><token></i> • <i><error report></i> • </font></b></pre> <h3><a name='CmdRoots'>roots</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> FileSystem roots +C • <i><token></i> • FileSystem • roots • </font></b></pre> <p>The command retrieves file system roots - top level file system objects. @@ -483,13 +483,13 @@ protocol file names to OS native names and back.</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 directory entries></i> +R • <i><token></i> • <i><error report></i> • <i><array of directory entries></i> • </font></b></pre> <h3><a name='CmdRemove'>remove</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> FileSystem remove <i><string: path></i> +C • <i><token></i> • FileSystem • remove • <i><string: path></i> • </font></b></pre> <p>The command removes a file or symbolic link. @@ -498,13 +498,13 @@ This request cannot be used to remove directories.</p> <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> +R • <i><token></i> • <i><error report></i> • </font></b></pre> <h3><a name='CmdRealPath'>realpath</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> FileSystem realpath <i><string: path></i> +C • <i><token></i> • FileSystem • realpath • <i><string: path></i> • </font></b></pre> <p>The command canonicalizes any given path name to an absolute path. @@ -514,13 +514,13 @@ relative pathnames without a leading slash into absolute paths.</p> <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> <i><string: path></i> +R • <i><token></i> • <i><error report></i> • <i><string: path></i> • </font></b></pre> <h3><a name='CmdRename'>rename</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> FileSystem rename <i><string: old path></i> <i><string: new path></i> +C • <i><token></i> • FileSystem • rename • <i><string: old path></i> • <i><string: new path></i> • </font></b></pre> <p>The command renames a file. @@ -532,13 +532,13 @@ point to different file systems on the server.</p> <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> +R • <i><token></i> • <i><error report></i> • </font></b></pre> <h3><a name='CmdReadLink'>readlink</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> FileSystem readlink <i><string: link path></i> +C • <i><token></i> • FileSystem • readlink • <i><string: link path></i> • </font></b></pre> <p>The command reads the target of a symbolic link. @@ -547,13 +547,13 @@ C <i><token></i> FileSystem readlink <i><string: link path>< <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> <i><string: path></i> +R • <i><token></i> • <i><error report></i> • <i><string: path></i> • </font></b></pre> <h3><a name='CmdSymLink'>symlink</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> FileSystem symlink <i><string: link path></i> <i><string: target path></i> +C • <i><token></i> • FileSystem • symlink • <i><string: link path></i> • <i><string: target path></i> • </font></b></pre> <p>The command creates a symbolic link on the server. @@ -563,14 +563,14 @@ C <i><token></i> FileSystem symlink <i><string: link path></ <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> +R • <i><token></i> • <i><error report></i> • </font></b></pre> <h3><a name='CmdCopy'>copy</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> FileSystem copy <i><string: source path></i> <i><string: destination path></i> - <i><boolean: copy permissions></i> <i><boolean: copy ownership></i> +C • <i><token></i> • FileSystem • copy • <i><string: source path></i> • <i><string: destination path></i> • + <i><boolean: copy permissions></i> • <i><boolean: copy ownership></i> • </font></b></pre> <p>The command copies a file on remote system. @@ -582,13 +582,13 @@ If <i><boolean: copy ownership></i> is true then copy source file UID and <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> +R • <i><token></i> • <i><error report></i> • </font></b></pre> <h3><a name='CmdUser'>user</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> FileSystem user +C • <i><token></i> • FileSystem • user • </font></b></pre> <p>The command retrieves information about user account, which is used by server @@ -597,8 +597,8 @@ to access file system on behalf of the client.</p> <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><int: real UID></i> <i><int: effective UID></i> - <i><int: real GID></i> <i><int: effective GID></i> <i><string: home directory></i> +R • <i><token></i> • <i><int: real UID></i> • <i><int: effective UID></i> • + <i><int: real GID></i> • <i><int: effective GID></i> • <i><string: home directory></i> • </font></b></pre> <h2><a name='API'>API</a></h2> diff --git a/docs/TCF Service - Memory.html b/docs/TCF Service - Memory.html index afca975ea..199a474eb 100644 --- a/docs/TCF Service - Memory.html +++ b/docs/TCF Service - Memory.html @@ -35,15 +35,15 @@ in addition to error report, describes data validity on per byte basis:</p> <pre><b><font face="Courier New" size=2 color=#333399> <i><array of error addresses></i> - <font face=Wingdings>Ψ</font> null - <font face=Wingdings>Ψ</font> [ <i><error address list></i> ] + ⇒ null + ⇒ [ <i><error address list></i> ] <i><error address list></i> - <font face=Wingdings>Ψ</font> <i><error address></i> - <font face=Wingdings>Ψ</font> <i><error address list></i> , <i><error address></i> + ⇒ <i><error address></i> + ⇒ <i><error address list></i> , <i><error address></i> <i><error address></i> - <font face=Wingdings>Ψ</font> { "addr" : <i><int: range starting address></i> , "size" : <i><int: range length in bytes></i> , "stat" : <i><int: status code></i> , "msg" : <i><error description></i> } + ⇒ { "addr" : <i><int: range starting address></i> , "size" : <i><int: range length in bytes></i> , "stat" : <i><int: status code></i> , "msg" : <i><error description></i> } </font></b></pre> <p>If there is no entry in error addresses array for a data byte, then status of such @@ -51,10 +51,10 @@ byte is defined by main error report.</p> <p>Status code is bitwise or of status flags:</p> <dl> - <dt><code><b>BYTE_VALID = 0x00</b></code> <dd>no error for this byte - <dt><code><b>BYTE_UNKNOWN = 0x01</b></code> <dd>status is unknown - <dt><code><b>BYTE_INVALID = 0x02</b></code> <dd>byte value in invalid, error message describes the problem - <dt><code><b>BYTE_CANNOT_READ = 0x04</b></code> <dd>cannot read the byte + <dt><code><b>BYTE_VALID = 0x00</b></code> <dd>no error for this byte + <dt><code><b>BYTE_UNKNOWN = 0x01</b></code> <dd>status is unknown + <dt><code><b>BYTE_INVALID = 0x02</b></code> <dd>byte value in invalid, error message describes the problem + <dt><code><b>BYTE_CANNOT_READ = 0x04</b></code> <dd>cannot read the byte <dt><code><b>BYTE_CANNOT_WRITE = 0x08</b></code> <dd>cannot write the byte </dl> @@ -63,7 +63,7 @@ byte is defined by main error report.</p> <h3><a name='CmdGetContext'>Get Context</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> Memory getContext <i><string: context ID></i> +C • <i><token></i> • Memory • getContext • <i><string: context ID></i> • </font></b></pre> <p>The command retrieves context info for given context ID. A context corresponds to an @@ -90,11 +90,11 @@ that is:</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> +R • <i><token></i> • <i><error report></i> • <i><context data></i> • <i><context data></i> - <font face=Wingdings>Ψ</font> null - <font face=Wingdings>Ψ</font> <i><object></i> + ⇒ null + ⇒ <i><object></i> </font></b></pre> <p>Context data object should, at least, contain member @@ -120,12 +120,12 @@ Service sends contextChanged event to notify changes in context data.</p> <h3><a name='CmdGetChildren'>Get Children</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> Memory getChildren <i><string: parent context ID></i> +C • <i><token></i> • Memory • getChildren • <i><string: parent context ID></i> • </font></b></pre> <p>The command requests a list of contexts available for memory access commands.</p> -<p>Parent context ID can be null to retrieve top level of the hierarchy, can be one +<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> @@ -133,25 +133,25 @@ choose layout that is most descriptive for a given target.</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></i> +R • <i><token></i> • <i><error report></i> • <i><array of context IDs></i> •<i></i> <i><array of context IDs></i> - <font face=Wingdings>Ψ</font> null - <font face=Wingdings>Ψ</font> [ ] - <font face=Wingdings>Ψ</font> [ <i><context ID list></i> ] + ⇒ null + ⇒ [ ] + ⇒ [ <i><context ID list></i> ] <i><context ID list></i> - <font face=Wingdings>Ψ</font> <i><string: context ID></i> - <font face=Wingdings>Ψ</font> <i><context ID list></i> , <i><string: context ID></i> + ⇒ <i><string: context ID></i> + ⇒ <i><context ID list></i> , <i><string: context ID></i> </font></b></pre> <h3><a name='CmdSetMemory'>Set Memory</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <token> Memory set - <i><string: context ID></i> <i><int: address></i> <i><int: word size></i> - <i><int: byte count></i> <i><int: mode></i> <i><string: BASE64 encoded byte array></i> +C • <token> • Memory • set • + <i><string: context ID></i> • <i><int: address></i> • <i><int: word size></i> • + <i><int: byte count></i> • <i><int: mode></i> • <i><string: BASE64 encoded byte array></i> • </font></b></pre> <p>Writes data bytes at given address in memory, "word size" bytes at a time. Address @@ -159,15 +159,15 @@ should be aligned by "word size". Context ID must be one returned by getContexts Mode is logical OR of any combination of:</p> <ul type='disc'> - <li>0x1 continue on error (like bus error or page fault) + <li>0x1 – continue on error (like bus error or page fault) - <li>0x2 verify data after writing by reading back and compare + <li>0x2 – verify data after writing by reading back and compare </ul> <p>Result message:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> <i><array of error addresses></i> +R • <i><token></i> • <i><error report></i> • <i><array of error addresses></i> • </font></b></pre> <p>Error report provides integer error code and a short, human readable explanation @@ -177,9 +177,9 @@ to be written into memory.</p> <h3><a name='CmdGetMemory'>Get Memory</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <token> Memory get - <i><string: context ID></i> <i><int: address></i> <i><int: word size></i> - <i><int: byte count></i> <i><int: mode></i> +C • <token> • Memory • get • + <i><string: context ID></i> • <i><int: address></i> • <i><int: word size></i> • + <i><int: byte count></i> • <i><int: mode></i> • </font></b></pre> <p>Reads data bytes at given address in memory, "word size" bytes at a time. Address @@ -187,15 +187,15 @@ should be aligned by "word size". Context ID must be one returned by getContexts Mode is logical OR of any combination of:</p> <ul type='disc'> - <li>0x1 continue on error (like bus error or page fault) + <li>0x1 – continue on error (like bus error or page fault) - <li>0x2 verify data after reading by re-reading and compare + <li>0x2 – verify data after reading by re-reading and compare </ul> <p>Result message:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><string: BASE64 encoded byte array></i> <i><error report></i> <i><array of error addresses></i> +R • <i><token></i> • <i><string: BASE64 encoded byte array></i> • <i><error report></i> • <i><array of error addresses></i> • </font></b></pre> <p>Error report provides integer error code and a short, human readable explanation @@ -205,9 +205,9 @@ to be retrieved from memory.</p> <h3><a name='CmdFillMemory'>Fill Memory</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <token> Memory fill - <i><string: context ID></i> <i><int: address></i> <i><int: word size></i> - <int: byte count> <i><int: mode></i> <i><array: array of pattern bytes></i> +C • <token> • Memory • fill • + <i><string: context ID></i> • <i><int: address></i> • <i><int: word size></i> • + <int: byte count> • <i><int: mode></i> • <i><array: array of pattern bytes></i> • </font></b></pre> <p>Writes pattern bytes at given address in memory, "word size" bytes at a time. Address @@ -216,15 +216,15 @@ pattern is repeated necessary number of times. Context ID must be one returned b getContexts. Mode is logical OR of any combination of:</p> <ul type='disc'> - <li>0x1 continue on error (like bus error or page fault) + <li>0x1 – continue on error (like bus error or page fault) - <li>0x2 verify data after writing by reading back and compare + <li>0x2 – verify data after writing by reading back and compare </ul> <p>Result message:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> <i><array of error addresses></i> +R • <i><token></i> • <i><error report></i> • <i><array of error addresses></i> • </font></b></pre> <p>Error report provides integer error code and a short, human readable explanation @@ -237,30 +237,30 @@ to be written into memory.</p> or changed, and when memory content is altered by "set" or "fill" commands.</p> <pre><b><font face="Courier New" size=2 color=#333399> -E Memory contextAdded <i><array of context data></i> -E Memory contextChanged <i><array of context data></i> -E Memory contextRemoved <i><array of context IDs></i> -E Memory memoryChanged <i><string: context ID></i> <i><array of address ranges></i> +E • Memory • contextAdded • <i><array of context data></i> • +E • Memory • contextChanged • <i><array of context data></i> • +E • Memory • contextRemoved • <i><array of context IDs></i> • +E • Memory • memoryChanged • <i><string: context ID></i> • <i><array of address ranges></i> • <i><array of context data></i> <font face="Times New Roman" size=3>- see Get Contexts command.</font> <i><array of context IDs></i> - <font face=Wingdings>Ψ</font> [ <i><context ID list></i> ] + ⇒ [ <i><context ID list></i> ] <i><context ID list></i> - <font face=Wingdings>Ψ</font> <i><string: context ID></i> - <font face=Wingdings>Ψ</font> <i><context ID list></i> , <i><string: context ID></i> + ⇒ <i><string: context ID></i> + ⇒ <i><context ID list></i> , <i><string: context ID></i> <i><array of address ranges></i> - <font face=Wingdings>Ψ</font> null - <font face=Wingdings>Ψ</font> [ <i><address ranges list></i> ] + ⇒ null + ⇒ [ <i><address ranges list></i> ] <i><address ranges list></i> - <font face=Wingdings>Ψ</font> <i><address range></i> - <font face=Wingdings>Ψ</font> <i><address ranges list></i> , <i><address range></i> + ⇒ <i><address range></i> + ⇒ <i><address ranges list></i> , <i><address range></i> <i><address range></i> - <font face=Wingdings>Ψ</font> { "addr" : <i><int: range starting address></i> , "size" : <i><int: range length in bytes></i> } + ⇒ { "addr" : <i><int: range starting address></i> , "size" : <i><int: range length in bytes></i> } </font></b></pre> <h2><a name='API'>API</a></h2> @@ -276,19 +276,19 @@ E Memory memoryChanged <i><string: context ID></i> <i><array of <font color=#3F5FBF>/** * Retrieve context info for given context ID. * - * <font color=#7F9FBF>@param</font> id context ID. + * <font color=#7F9FBF>@param</font> id – context ID. * <font color=#7F9FBF>@param</font> done - callback interface called when operation is completed. - */</font> + */</font> IToken getContext(String id, DoneGetContext done); <font color=#3F5FBF>/** * Client callback interface for getContext(). - */</font> + */</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 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, MemoryContext context); } @@ -303,7 +303,7 @@ E Memory memoryChanged <i><string: context ID></i> <i><array of * with same IDs, however, each service accesses its own subset of context's * attributes and functionality, which is relevant to that service. * - * <font color=#7F9FBF>@param</font> parent_context_id parent context ID. Can be null + * <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 getContexts commands. * <font color=#7F9FBF>@param</font> done - callback interface called when operation is completed. @@ -316,139 +316,139 @@ E Memory memoryChanged <i><string: context ID></i> <i><array of <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> contexts array of available context IDs. + * <font color=#7F9FBF>@param</font> error – error description if operation failed, null if succeeded. + * <font color=#7F9FBF>@param</font> contexts – array of available context IDs. */</font> <font color=#7F0055>void</font> doneGetChildren(IToken token, Exception error, String[] context_ids); } - <font color=#3F5FBF>/** - * Memory access mode: - * Carry on when some of the memory cannot be accessed and - * return MemoryError at the end if any of the bytes - * were not processed correctly. - */</font> - <font color=#7F0055>final static int</font> MODE_CONTINUEONERROR = 0x1; - - <font color=#3F5FBF>/** - * Memory access mode: - * Verify result of memory operations (by reading and comparing). - */</font> - <font color=#7F0055>final static int</font> MODE_VERIFY = 0x2; - - <font color=#7F0055>interface</font> MemoryContext { - - <font color=#3F5FBF>/** - * Retrieve context ID. - * Same as getProperties().get("id") - */</font> - String getID(); - - <font color=#3F5FBF>/** - * Return true if the context has children. - * Same as getProperties().get("has_children") - * Children can be retrieved by getContexts call. - */</font> - <font color=#7F0055>boolean</font> hasChildren(); - - <font color=#3F5FBF>/** - * Retrieve context properties. - */</font> - Map<String,Object> getProperties(); - - <font color=#3F5FBF>/** - * Set target memory. - * If 'word_size' is 0 it means client does not care about word size. - */</font> - <font color=#7F0055>void</font> set(long addr, <font color=#7F0055>int</font> word_size, byte[] buf, - <font color=#7F0055>int</font> offs, <font color=#7F0055>int</font> size, <font color=#7F0055>int</font> mode, DoneMemory done); - - <font color=#3F5FBF>/** - * Read target memory. - */</font> - <font color=#7F0055>void</font> get(long addr, <font color=#7F0055>int</font> word_size, byte[] buf, - <font color=#7F0055>int</font> offs, <font color=#7F0055>int</font> size, <font color=#7F0055>int</font> mode, DoneMemory done); - - <font color=#3F5FBF>/** - * Fill target memory with given pattern. - * 'size' is number of bytes to fill. - */</font> - <font color=#7F0055>void</font> fill(long addr, <font color=#7F0055>int</font> word_size, byte[] value, - <font color=#7F0055>int</font> size, <font color=#7F0055>int</font> mode, DoneMemory done); - - <font color=#3F5FBF>/** - * Client callback interface for set(), get() and fill(). - */</font> - <font color=#7F0055>interface</font> DoneMemory { - <font color=#7F0055>void</font> doneMemory(MemoryError error); - } - } - - <font color=#7F0055>class</font> MemoryError <font color=#7F0055>extends</font> Exception { - } + <font color=#3F5FBF>/** + * Memory access mode: + * Carry on when some of the memory cannot be accessed and + * return MemoryError at the end if any of the bytes + * were not processed correctly. + */</font> + <font color=#7F0055>final static int</font> MODE_CONTINUEONERROR = 0x1; + + <font color=#3F5FBF>/** + * Memory access mode: + * Verify result of memory operations (by reading and comparing). + */</font> + <font color=#7F0055>final static int</font> MODE_VERIFY = 0x2; + + <font color=#7F0055>interface</font> MemoryContext { + + <font color=#3F5FBF>/** + * Retrieve context ID. + * Same as getProperties().get("id") + */</font> + String getID(); + + <font color=#3F5FBF>/** + * Return true if the context has children. + * Same as getProperties().get("has_children") + * Children can be retrieved by getContexts call. + */</font> + <font color=#7F0055>boolean</font> hasChildren(); + + <font color=#3F5FBF>/** + * Retrieve context properties. + */</font> + Map<String,Object> getProperties(); + + <font color=#3F5FBF>/** + * Set target memory. + * If 'word_size' is 0 it means client does not care about word size. + */</font> + <font color=#7F0055>void</font> set(long addr, <font color=#7F0055>int</font> word_size, byte[] buf, + <font color=#7F0055>int</font> offs, <font color=#7F0055>int</font> size, <font color=#7F0055>int</font> mode, DoneMemory done); + + <font color=#3F5FBF>/** + * Read target memory. + */</font> + <font color=#7F0055>void</font> get(long addr, <font color=#7F0055>int</font> word_size, byte[] buf, + <font color=#7F0055>int</font> offs, <font color=#7F0055>int</font> size, <font color=#7F0055>int</font> mode, DoneMemory done); + + <font color=#3F5FBF>/** + * Fill target memory with given pattern. + * 'size' is number of bytes to fill. + */</font> + <font color=#7F0055>void</font> fill(long addr, <font color=#7F0055>int</font> word_size, byte[] value, + <font color=#7F0055>int</font> size, <font color=#7F0055>int</font> mode, DoneMemory done); + + <font color=#3F5FBF>/** + * Client callback interface for set(), get() and fill(). + */</font> + <font color=#7F0055>interface</font> DoneMemory { + <font color=#7F0055>void</font> doneMemory(MemoryError error); + } + } + + <font color=#7F0055>class</font> MemoryError <font color=#7F0055>extends</font> Exception { + } - <font color=#3F5FBF>/** - * ErrorOffset interface can be implemented by MemoryError object, - * which is returned by get, set and fill commands. - * - * get/set/fill () returns this exception when reading failed - * for some but not all bytes, and MODE_CONTINUEONERROR - * has been set in mode. (For example, when only part of the request - * translates to valid memory addresses.) - * Exception.getMessage can be used for generalized message of the - * possible reasons of partial memory operation. - */</font> - <font color=#7F0055>interface</font> ErrorOffset { - - // Error may have per byte information - <font color=#7F0055>final static int</font> - BYTE_VALID = 0x00, - BYTE_UNKNOWN = 0x01, // e.g. out of range - BYTE_INVALID = 0x02, - BYTE_CANNOT_READ = 0x04, - BYTE_CANNOT_WRITE = 0x08; - - <font color=#7F0055>int</font> getStatus(<font color=#7F0055>int</font> offset); - - <font color=#3F5FBF>/** - * Returns the detail message string about the - * byte associated with specified location. - * <font color=#7F9FBF>@return</font> the detail error message string. - */</font> - String getMessage(<font color=#7F0055>int</font> offset); - - } - - <font color=#7F0055>void</font> addListener(MemoryListener listener); - - <font color=#7F0055>interface</font> MemoryListener { - - <font color=#3F5FBF>/** - * Called when a new memory access context(s) is created. - */</font> - <font color=#7F0055>void</font> contextAdded(Context[] contexts); - - <font color=#3F5FBF>/** - * Called when a new memory access context(s) properties changed. - */</font> - <font color=#7F0055>void</font> contextChanged(Context[] contexts); - - <font color=#3F5FBF>/** - * Called when memory access context(s) is removed. - */</font> - <font color=#7F0055>void</font> contextRemoved(String[] context_ids); - - <font color=#3F5FBF>/** - * Called when target memory content was changed and clients - * need to update themselves. Clients, at least, should invalidate - * corresponding cached memory data. - * Not every change is notified - it is not possible, - * only those, which are not caused by normal execution of the debuggee. - * addr and size can be null if unknown. - */</font> - <font color=#7F0055>void</font> memoryChanged(String context_id, - long[] addr, long[] size); - } + <font color=#3F5FBF>/** + * ErrorOffset interface can be implemented by MemoryError object, + * which is returned by get, set and fill commands. + * + * get/set/fill () returns this exception when reading failed + * for some but not all bytes, and MODE_CONTINUEONERROR + * has been set in mode. (For example, when only part of the request + * translates to valid memory addresses.) + * Exception.getMessage can be used for generalized message of the + * possible reasons of partial memory operation. + */</font> + <font color=#7F0055>interface</font> ErrorOffset { + + // Error may have per byte information + <font color=#7F0055>final static int</font> + BYTE_VALID = 0x00, + BYTE_UNKNOWN = 0x01, // e.g. out of range + BYTE_INVALID = 0x02, + BYTE_CANNOT_READ = 0x04, + BYTE_CANNOT_WRITE = 0x08; + + <font color=#7F0055>int</font> getStatus(<font color=#7F0055>int</font> offset); + + <font color=#3F5FBF>/** + * Returns the detail message string about the + * byte associated with specified location. + * <font color=#7F9FBF>@return</font> the detail error message string. + */</font> + String getMessage(<font color=#7F0055>int</font> offset); + + } + + <font color=#7F0055>void</font> addListener(MemoryListener listener); + + <font color=#7F0055>interface</font> MemoryListener { + + <font color=#3F5FBF>/** + * Called when a new memory access context(s) is created. + */</font> + <font color=#7F0055>void</font> contextAdded(Context[] contexts); + + <font color=#3F5FBF>/** + * Called when a new memory access context(s) properties changed. + */</font> + <font color=#7F0055>void</font> contextChanged(Context[] contexts); + + <font color=#3F5FBF>/** + * Called when memory access context(s) is removed. + */</font> + <font color=#7F0055>void</font> contextRemoved(String[] context_ids); + + <font color=#3F5FBF>/** + * Called when target memory content was changed and clients + * need to update themselves. Clients, at least, should invalidate + * corresponding cached memory data. + * Not every change is notified - it is not possible, + * only those, which are not caused by normal execution of the debuggee. + * ‘addr’ and ‘size’ can be null if unknown. + */</font> + <font color=#7F0055>void</font> memoryChanged(String context_id, + long[] addr, long[] size); + } } </pre> diff --git a/docs/TCF Service - Processes.html b/docs/TCF Service - Processes.html index dbb3f0309..3b64c2843 100644 --- a/docs/TCF Service - Processes.html +++ b/docs/TCF Service - Processes.html @@ -42,7 +42,7 @@ see <a href='TCF Services.html#ErrorFormat'>Error Report Format</a>.</p> <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> +C • <i><token></i> • Processes • getContext • <i><string: context ID></i> • </font></b></pre> <p>The command retrieves context info for given context ID. @@ -57,11 +57,11 @@ useful information. <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> +R • <i><token></i> • <i><error report></i> • <i><context data></i> • <i><context data></i> - <font face=Wingdings>Ψ</font> null - <font face=Wingdings>Ψ</font> <i><object></i> + ⇒ null + ⇒ <i><object></i> </font></b></pre> <p>Context data object should, at least, contain member @@ -89,12 +89,12 @@ R <i><token></i> <i><error report></i> <i><context data> <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> +C • <i><token></i> • Processes • getChildren • <i><string: parent context ID></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 +<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> @@ -102,22 +102,22 @@ choose layout that is most descriptive for a given target.</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> +R • <i><token></i> • <i><error report></i> • <i><array of context IDs></i> • <i><array of context IDs></i> - <font face=Wingdings>Ψ</font> null - <font face=Wingdings>Ψ</font> [ ] - <font face=Wingdings>Ψ</font> [ <i><context ID list></i> ] + ⇒ null + ⇒ [ ] + ⇒ [ <i><context ID list></i> ] <i><context ID list></i> - <font face=Wingdings>Ψ</font> <i><string: context ID></i> - <font face=Wingdings>Ψ</font> <i><context ID list></i> , <i><string: context ID></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> +C • <i><token></i> • Processes • attach • <i><string: context ID></i> • </font></b></pre> <p>The command attaches debugger to a process. @@ -126,13 +126,13 @@ Services like Run Control, Memory, Breakpoints work only with attached processes <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> +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> +C • <i><token></i> • Processes • detach • <i><string: context ID></i> • </font></b></pre> <p>The command detaches debugger from a process.</p> @@ -140,13 +140,13 @@ C <i><token></i> Processes detach <i><string: context ID></i <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> +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> +C • <i><token></i> • Processes • terminate • <i><string: context ID></i> • </font></b></pre> <p>The command terminates a process.</p> @@ -154,13 +154,13 @@ C <i><token></i> Processes terminate <i><string: context ID> <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> +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> +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 process.</p> @@ -168,23 +168,23 @@ C <i><token></i> Processes signal <i><string: context ID></i <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> +R • <i><token></i> • <i><error report></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> +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> • <i><string array></i> - <font face=Wingdings>Ψ</font> null - <font face=Wingdings>Ψ</font> [ ] - <font face=Wingdings>Ψ</font> [ <i><string list></i> ] + ⇒ null + ⇒ [ ] + ⇒ [ <i><string list></i> ] <i><string list></i> - <font face=Wingdings>Ψ</font> <i><string></i> - <font face=Wingdings>Ψ</font> <i><string list></i> , <i><string></i> + ⇒ <i><string></i> + ⇒ <i><string list></i> , <i><string></i> </font></b></pre> <p>The command starts a new process on remote machine. @@ -198,7 +198,7 @@ they will be added to default process environment. <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> +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> @@ -224,7 +224,7 @@ R <i><token></i> <i><error report></i> <i><context data> * If the ID is not a process ID, 'IProcesses.getContext' may not return any * useful information * - * <font color=#7F9FBF><font color=#7F9FBF>@param</font></font> id context ID. + * <font color=#7F9FBF><font color=#7F9FBF>@param</font></font> id – context ID. * <font color=#7F9FBF><font color=#7F9FBF>@param</font></font> done - call back interface called when operation is completed. */</font> IToken getContext(String id, DoneGetContext done); @@ -235,8 +235,8 @@ R <i><token></i> <i><error report></i> <i><context data> <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 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); } @@ -244,7 +244,7 @@ R <i><token></i> <i><error report></i> <i><context data> <font color=#3F5FBF>/** * Retrieve children of given context. * - * <font color=#7F9FBF>@param</font> parent_context_id parent context ID. Can be null + * <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> done - call back interface called when operation is completed. @@ -257,8 +257,8 @@ R <i><token></i> <i><error report></i> <i><context data> <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 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); } @@ -286,20 +286,20 @@ R <i><token></i> <i><error report></i> <i><context data> <font color=#3F5FBF>/** * Get context ID. - * Same as getProperties().get(ID) + * Same as getProperties().get(“ID”) */</font> String getID(); <font color=#3F5FBF>/** * Get parent context ID. - * Same as getProperties().get(ParentID) + * 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) + * Same as getProperties().get(“Name”) */</font> String getName(); diff --git a/docs/TCF Service - Registers.html b/docs/TCF Service - Registers.html index 44b713bdf..b47f490c7 100644 --- a/docs/TCF Service - Registers.html +++ b/docs/TCF Service - Registers.html @@ -43,7 +43,7 @@ multiple locations. This allows: <h3><a name='CmdGetContext'>Get Context</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> Registers getContext <i><string: context ID></i> +C • <i><token></i> • Registers • getContext • <i><string: context ID></i> • </font></b></pre> <p>The command retrieves context info for given context ID. A context corresponds to an @@ -59,11 +59,11 @@ Target agent should define contexts hierarchy that is:</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> +R • <i><token></i> • <i><error report></i> • <i><context data></i> • <i><context data></i> - <font face=Wingdings>Ψ</font> null - <font face=Wingdings>Ψ</font> <i><object></i> + ⇒ null + ⇒ <i><object></i> </font></b></pre> <p>Context data object should, at least, contain member @@ -135,7 +135,7 @@ Service sends contextChanged event to notify changes in context data.</p> <h3><a name='CmdGetChildren'>Get Children</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> Registers getChildren <i><string: parent context ID></i> +C • <i><token></i> • Registers • getChildren • <i><string: parent context ID></i> • </font></b></pre> <p>The command requests a list of contexts available for registers access commands.</p> @@ -148,23 +148,23 @@ It is up to target agent developers to choose layout that is most descriptive fo <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></i> +R • <i><token></i> • <i><error report></i> • <i><array of context IDs></i> •<i></i> <i><array of context IDs></i> - <font face=Wingdings>Ψ</font> null - <font face=Wingdings>Ψ</font> [ ] - <font face=Wingdings>Ψ</font> [ <i><context ID list></i> ] + ⇒ null + ⇒ [ ] + ⇒ [ <i><context ID list></i> ] <i><context ID list></i> - <font face=Wingdings>Ψ</font> <i><string: context ID></i> - <font face=Wingdings>Ψ</font> <i><context ID list></i> , <i><string: context ID></i> + ⇒ <i><string: context ID></i> + ⇒ <i><context ID list></i> , <i><string: context ID></i> </font></b></pre> <h3><a name='CmdSetRegister'>Set Register</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <token> Registers set <i><string: context ID></i> <i><string: value></i> +C • <token> • Registers • set • <i><string: context ID></i> • <i><string: value></i> • </font></b></pre> <p>Writes value into given register context. Context ID must be one returned by getContexts. @@ -173,7 +173,7 @@ Value is BASE64 encoded byte array of binary data. Array size should match the s <p>Result message:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> +R • <i><token></i> • <i><error report></i> • </font></b></pre> <p>Error report provides integer error code and a short, human readable explanation @@ -182,7 +182,7 @@ of error.</p> <h3><a name='CmdGetRegister'>Get Register</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <token> Registers get <i><string: context ID></i> +C • <token> • Registers • get • <i><string: context ID></i> • </font></b></pre> <p>Reads register value from given register context. Context ID must be one returned by getContexts. @@ -191,7 +191,7 @@ C <token> Registers get <i><string: context ID></i> <p>Result message:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> <i><string: value></i> +R • <i><token></i> • <i><error report></i> • <i><string: value></i> • </font></b></pre> <p>Error report provides integer error code and a short, human readable explanation @@ -200,17 +200,17 @@ of error. Value is BASE64 encoded byte array of binary data. Array size should m <h3><a name='CmdSetMultiple'>Set Multiple Registers</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <token> Registers setm <i><array of locations></i> <i><string: value></i> +C • <token> • Registers • setm • <i><array of locations></i> • <i><string: value></i> • <i><array of locations></i> - <font face=Wingdings>Ψ</font> [ <i><location list></i> ] + ⇒ [ <i><location list></i> ] <i><location list></i> - <font face=Wingdings>Ψ</font> <i><location></i> - <font face=Wingdings>Ψ</font> <i><location list></i> , <i><location></i> + ⇒ <i><location></i> + ⇒ <i><location list></i> , <i><location></i> <i><location></i> - <font face=Wingdings>Ψ</font> [ <i><string: register context ID></i> , <i><int: offset in bytes></i> , <i><int: size in bytes></i> ] + ⇒ [ <i><string: register context ID></i> , <i><int: offset in bytes></i> , <i><int: size in bytes></i> ] </font></b></pre> <p>Writes value into given list of locations in registers. Each location is represented by 3-element array that consists of @@ -220,7 +220,7 @@ Value is BASE64 encoded byte array of binary data. Byte array size should match <p>Result message:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> +R • <i><token></i> • <i><error report></i> • </font></b></pre> <p>Error report provides integer error code and a short, human readable explanation @@ -229,17 +229,17 @@ of error.</p> <h3><a name='CmdGetMultiple'>Get Multiple Registers</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <token> Registers getm <i><array of locations></i> +C • <token> • Registers • getm • <i><array of locations></i> • <i><array of locations></i> - <font face=Wingdings>Ψ</font> [ <i><location list></i> ] + ⇒ [ <i><location list></i> ] <i><location list></i> - <font face=Wingdings>Ψ</font> <i><location></i> - <font face=Wingdings>Ψ</font> <i><location list></i> , <i><location></i> + ⇒ <i><location></i> + ⇒ <i><location list></i> , <i><location></i> <i><location></i> - <font face=Wingdings>Ψ</font> [ <i><string: register context ID></i> , <i><int: offset in bytes></i> , <i><int: size in bytes></i> ] + ⇒ [ <i><string: register context ID></i> , <i><int: offset in bytes></i> , <i><int: size in bytes></i> ] </font></b></pre> <p>Reads register values from given list of locations in registers. Each location is represented by 3-element array that consists of @@ -249,7 +249,7 @@ context ID, offset in the context in bytes and value size in bytes. <p>Result message:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> <i><string: value></i> +R • <i><token></i> • <i><error report></i> • <i><string: value></i> • </font></b></pre> <p>Error report provides integer error code and a short, human readable explanation @@ -261,8 +261,8 @@ of error. Value is BASE64 encoded byte array of binary data. Byte array size sho a register content is altered by "set" commands.</p> <pre><b><font face="Courier New" size=2 color=#333399> -E Registers contextChanged -E Registers registerChanged <i><string: context ID></i> +E • Registers • contextChanged • +E • Registers • registerChanged • <i><string: context ID></i> • </font></b></pre> <h2><a name='API'>API</a></h2> @@ -301,7 +301,7 @@ E Registers registerChanged <i><string: context ID></i> <font color=#3F5FBF>/** * Retrieve context info for given context ID. * - * <font color=#7F9FBF>@param</font> id context ID. + * <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); @@ -312,8 +312,8 @@ E Registers registerChanged <i><string: context ID></i> <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 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, RegistersContext context); } @@ -328,7 +328,7 @@ E Registers registerChanged <i><string: context ID></i> * with same IDs, however, each service accesses its own subset of context's * attributes and functionality, which is relevant to that service. * - * <font color=#7F9FBF>@param</font> parent_context_id parent context ID. Can be null + * <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 getChildren commands. * <font color=#7F9FBF>@param</font> done - call back interface called when operation is completed. @@ -341,8 +341,8 @@ E Registers registerChanged <i><string: context ID></i> <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 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); } diff --git a/docs/TCF Service - Run Control.html b/docs/TCF Service - Run Control.html index fd5adccd5..55583a8c6 100644 --- a/docs/TCF Service - Run Control.html +++ b/docs/TCF Service - Run Control.html @@ -36,7 +36,7 @@ see <a href='TCF Services.html#ErrorFormat'>Error Report Format</a>.</p> context is in a particular state. For example, if single step command arrives when context is running, it does not wait until it stops, but returns an error. If a command successfully resumed a context, it does not wait until instruction pointer reaches -desired destination from client point of view the command execution ends right after +desired destination – from client point of view the command execution ends right after context was resumed. Various stepping commands can leave a context running in a special mode, which is different from normal execution, for example, it can leave temporary breakpoints to suspend the context when control reaches a particular place. Such execution @@ -47,7 +47,7 @@ why a context is suspended by listening to events.</p> <h3><a name='CmdGetContext'>Get Context</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> RunControl getContext <i><string: context ID></i> +C • <i><token></i> • RunControl • getContext • <i><string: context ID></i> • </font></b></pre> <p>The command retrieves context properties for given context ID. @@ -63,11 +63,11 @@ attributes and functionality, which is relevant to that service.</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> +R • <i><token></i> • <i><error report></i> • <i><context data></i> • <i><context data></i> - <font face=Wingdings>Ψ</font> null - <font face=Wingdings>Ψ</font> <i><object: context properties></i> + ⇒ null + ⇒ <i><object: context properties></i> </font></b></pre> <p>Context data object is collection of context properties. It should, at least, contain member @@ -115,12 +115,12 @@ contextChanged event to notify changes in context data.</p> <h3><a name='CmdGetChildren'>Get Children</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> RunControl getChildren <i><string: parent context ID></i> +C • <i><token></i> • RunControl • getChildren • <i><string: parent context ID></i> • </font></b></pre> <p>The command requests list of execution contexts available for run control commands.</p> -<p>Parent context ID can be null to retrieve top level of the hierarchy, can be one +<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> @@ -128,21 +128,21 @@ choose layout that is most descriptive for a given target.</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> +R • <i><token></i> • <i><error report></i> • <i><array of context IDs></i> • <i><array of context IDs></i> - <font face=Wingdings>Ψ</font> null - <font face=Wingdings>Ψ</font> [ <i><context ID list></i> ] + ⇒ null + ⇒ [ <i><context ID list></i> ] <i><context ID list></i> - <font face=Wingdings>Ψ</font> <i><string: context ID></i> - <font face=Wingdings>Ψ</font> <i><context ID list></i> , <i><string: context ID></i> + ⇒ <i><string: context ID></i> + ⇒ <i><context ID list></i> , <i><string: context ID></i> </font></b></pre> <h3><a name='CmdSuspend'>Suspend</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> RunControl suspend <i><string: context ID></i> +C • <i><token></i> • RunControl • suspend • <i><string: context ID></i> • </font></b></pre> <p>The command suspends execution of given context. The command should fail if CanSuspend property of the context is false. @@ -152,13 +152,13 @@ can be suspended.</p> <p>Result message:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> +R • <i><token></i> • <i><error report></i> • </font></b></pre> <h3><a name='CmdResume'>Resume</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> RunControl resume <i><string: context ID></i> <i><int: mode></i> <i><int: count></i> +C • <i><token></i> • RunControl • resume • <i><string: context ID></i> • <i><int: mode></i> • <i><int: count></i> • </font></b></pre> <p>The command resumes execution of given context. The command should fail if CanResume @@ -211,13 +211,13 @@ to context's children. Only contexts with HasState = true can be resumed.</p> <p>Result message:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> +R • <i><token></i> • <i><error report></i> • </font></b></pre> <h3><a name='CmdGetState'>Get State</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> RunControl getState <i><string: context ID></i> +C • <i><token></i> • RunControl • getState • <i><string: context ID></i> • </font></b></pre> <p>The command retrieves current state of the context. The command should fail if HasState property of @@ -226,12 +226,12 @@ the context is false.</p> <p>Result message:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> <i><boolean: suspended></i> - <i><int: PC></i> <i><string: last state change reason></i> <i><state data></i> +R • <i><token></i> • <i><error report></i> • <i><boolean: suspended></i> • + <i><int: PC></i> • <i><string: last state change reason></i> • <i><state data></i> • <i><state data></i> - <font face=Wingdings>Ψ</font> null - <font face=Wingdings>Ψ</font> <i><object: context state properties></i> + ⇒ null + ⇒ <i><object: context state properties></i> </font></b></pre> <p>State change reason can be any text, but if it is one of predefined strings, @@ -254,7 +254,7 @@ Definition of state properties depends on a target.</p> <h3><a name='CmdTerminate'>Terminate</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> RunControl terminate <i><string: context ID></i> +C • <i><token></i> • RunControl • terminate • <i><string: context ID></i> • </font></b></pre> <p>The command terminates execution of given context. The command should fail if CanTerminate @@ -263,37 +263,37 @@ property of the context is false.</p> <p>Result message:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> +R • <i><token></i> • <i><error report></i> • </font></b></pre> <h2><a name='Events'>Events</a></h2> <pre><b><font face="Courier New" size=2 color=#333399> -E RunControl contextAdded <i><array of context data></i> +E • RunControl • contextAdded • <i><array of context data></i> • -E RunControl contextChanged <i><array of context data></i> +E • RunControl • contextChanged • <i><array of context data></i> • -E RunControl contextRemoved <i><array of context IDs></i> +E • RunControl • contextRemoved • <i><array of context IDs></i> • -E RunControl contextSuspended <i><string: context ID></i> <i><int: PC></i> - <i><string: reason></i> <i><state data></i> +E • RunControl • contextSuspended • <i><string: context ID></i> • <i><int: PC></i> • + <i><string: reason></i> • <i><state data></i> • -E RunControl contextResumed <i><string: context ID></i> +E • RunControl • contextResumed • <i><string: context ID></i> • -E RunControl contextException <i><string: context ID></i> <i><string: description></i> +E • RunControl • contextException • <i><string: context ID></i> • <i><string: description></i> • -E RunControl containerSuspended <i><string: context ID></i> <i><int: PC></i> - <i><string: reason></i> <i><state data></i> <i><array of context IDs></i> +E • RunControl • containerSuspended • <i><string: context ID></i> • <i><int: PC></i> • + <i><string: reason></i> • <i><state data></i> • <i><array of context IDs></i> • -E RunControl containerResumed <i><array of context IDs></i> +E • RunControl • containerResumed • <i><array of context IDs></i> • <i><array of context data></i> - <font face=Wingdings>Ψ</font> null - <font face=Wingdings>Ψ</font> [ <i><context data list></i> ] + ⇒ null + ⇒ [ <i><context data list></i> ] <i><context data list></i> - <font face=Wingdings>Ψ</font> <i><object: context data></i> - <font face=Wingdings>Ψ</font> <i><context data list></i> , <i><object: context data></i> + ⇒ <i><object: context data></i> + ⇒ <i><context data list></i> , <i><object: context data></i> </font></b></pre> <dl> @@ -381,7 +381,7 @@ E RunControl containerResumed <i><array of context IDs></i> <font color=#3F5FBF>/** * Retrieve context info for given context ID. * - * <font color=#7F9FBF>@param</font> id context ID. + * <font color=#7F9FBF>@param</font> id – context ID. * <font color=#7F9FBF>@param</font> done - callback interface called when operation is completed. */</font> IToken getContext(String id, DoneGetContext done); @@ -392,33 +392,33 @@ E RunControl containerResumed <i><array of context IDs></i> <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 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, RunControlContext context); } - <font color=#3F5FBF>/** + <font color=#3F5FBF>/** * Retrieve children of given context. * - * <font color=#7F9FBF>@param</font> parent_context_id parent context ID. Can be null + * <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> done - callback interface called when operation is completed. - */</font> + */</font> IToken getChildren(String parent_context_id, DoneGetChildren done); - <font color=#3F5FBF>/** - * Client callback interface for getContexts(). - */</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> contexts array of available context IDs. - */</font> - <font color=#7F0055>void</font> doneGetChildren(IToken token, RunControlError error, Context[] contexts); - } + <font color=#3F5FBF>/** + * Client callback interface for getContexts(). + */</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> contexts – array of available context IDs. + */</font> + <font color=#7F0055>void</font> doneGetChildren(IToken token, RunControlError error, Context[] contexts); + } <font color=#3F5FBF>/** * A context corresponds to an execution thread, process, address space, etc. @@ -429,13 +429,13 @@ E RunControl containerResumed <i><array of context IDs></i> * with same IDs, however, each service accesses its own subset of context's * attributes and functionality, which is relevant to that service. */</font> - <font color=#7F0055>interface</font> RunControlContext { + <font color=#7F0055>interface</font> RunControlContext { <font color=#3F5FBF>/** * Retrieve context ID. * Same as getProperties().get("ID") */</font> - String getID(); + String getID(); <font color=#3F5FBF>/** * Retrieve parent context ID. @@ -448,7 +448,7 @@ E RunControl containerResumed <i><array of context IDs></i> * Context properties are read only, clients should not try to modify them. * <font color=#7F9FBF>@return</font> Map of context properties. */</font> - Map<String,Object> getProperties(); + Map<String,Object> getProperties(); <font color=#3F5FBF>/** * Utility method to read context property PROP_IS_CONTAINER. @@ -537,10 +537,10 @@ E RunControl containerResumed <i><array of context IDs></i> * <font color=#7F9FBF>@return</font> pending command handle, can be used to cancel the command. */</font> IToken terminate(DoneCommand done); - } + } - <font color=#7F0055>class</font> RunControlError <font color=#7F0055>extends</font> Exception { - } + <font color=#7F0055>class</font> RunControlError <font color=#7F0055>extends</font> Exception { + } <font color=#7F0055>interface</font> DoneGetState { <font color=#7F0055>void</font> doneGetState(IToken token, Exception error, <font color=#7F0055>boolean</font> suspended, String pc, diff --git a/docs/TCF Service - Stack Trace.html b/docs/TCF Service - Stack Trace.html index c1ce675d5..661607bbd 100644 --- a/docs/TCF Service - Stack Trace.html +++ b/docs/TCF Service - Stack Trace.html @@ -31,16 +31,16 @@ see <a href='TCF Services.html#ErrorFormat'>Error Report Format</a>.</p> <h3><a name='CmdGetContext'>Get Context</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> StackTrace getContext <i><array of context IDs></i> +C • <i><token></i> • StackTrace • getContext • <i><array of context IDs></i> • <i><array of context IDs></i> - <font face=Wingdings>Ψ</font> null - <font face=Wingdings>Ψ</font> [ ] - <font face=Wingdings>Ψ</font> [ <i><context ID list></i> ] + ⇒ null + ⇒ [ ] + ⇒ [ <i><context ID list></i> ] <i><context ID list></i> - <font face=Wingdings>Ψ</font> <i><string: context ID></i> - <font face=Wingdings>Ψ</font> <i><context ID list></i> , <i><string: context ID></i> + ⇒ <i><string: context ID></i> + ⇒ <i><context ID list></i> , <i><string: context ID></i> </font></b></pre> <p>The command retrieves context info for given context IDs. @@ -52,20 +52,20 @@ each stack is also represented by a separate context.</p> <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><array of context data></i> <i><error report></i> +R • <i><token></i> • <i><array of context data></i> • <i><error report></i> • <i><array of context data></i> - <font face=Wingdings>Ψ</font> null - <font face=Wingdings>Ψ</font> [ ] - <font face=Wingdings>Ψ</font> [ <i><context data list></i> ] + ⇒ null + ⇒ [ ] + ⇒ [ <i><context data list></i> ] <i><context data list></i> - <font face=Wingdings>Ψ</font> <i><context data></i> - <font face=Wingdings>Ψ</font> <i><context data list></i> , <i><context data></i> + ⇒ <i><context data></i> + ⇒ <i><context data list></i> , <i><context data></i> <i><context data></i> - <font face=Wingdings>Ψ</font> null - <font face=Wingdings>Ψ</font> <i><object></i> + ⇒ null + ⇒ <i><object></i> </font></b></pre> <p>Context data object should, at least, contain member @@ -106,7 +106,7 @@ Cached context data should by flushed when parent thread is resumed.</p> <h3><a name='CmdGetChildren'>Get Children</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> StackTrace getChildren <i><string: parent context ID></i> +C • <i><token></i> • StackTrace • getChildren • <i><string: parent context ID></i> • </font></b></pre> <p>The command retrieves stack trace context list. @@ -121,16 +121,16 @@ Client can use Run Control service to suspend a thread.</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></i> +R • <i><token></i> • <i><error report></i> • <i><array of context IDs></i> •<i></i> <i><array of context IDs></i> - <font face=Wingdings>Ψ</font> null - <font face=Wingdings>Ψ</font> [ ] - <font face=Wingdings>Ψ</font> [ <i><context ID list></i> ] + ⇒ null + ⇒ [ ] + ⇒ [ <i><context ID list></i> ] <i><context ID list></i> - <font face=Wingdings>Ψ</font> <i><string: context ID></i> - <font face=Wingdings>Ψ</font> <i><context ID list></i> , <i><string: context ID></i> + ⇒ <i><string: context ID></i> + ⇒ <i><context ID list></i> , <i><string: context ID></i> </font></b></pre> @@ -166,7 +166,7 @@ R <i><token></i> <i><error report></i> <i><array of context * The command will fail if parent thread is not suspended. * Client can use Run Control service to suspend a thread. * - * <font color=#7F9FBF>@param</font> id array of context IDs. + * <font color=#7F9FBF>@param</font> id – array of context IDs. * <font color=#7F9FBF>@param</font> done - call back interface called when operation is completed. */</font> IToken getContext(String[] id, DoneGetContext done); @@ -177,8 +177,8 @@ R <i><token></i> <i><error report></i> <i><array of context <font color=#7F0055>interface</font> DoneGetContext { <font color=#3F5FBF>/** * Called when context data retrieval is done. - * <font color=#7F9FBF>@param</font> error error description if operation failed, null if succeeded. - * <font color=#7F9FBF>@param</font> context array of context data or null if error. + * <font color=#7F9FBF>@param</font> error – error description if operation failed, null if succeeded. + * <font color=#7F9FBF>@param</font> context – array of context data or null if error. */</font> <font color=#7F0055>void</font> doneGetContext(IToken token, Exception error, StackTraceContext[] context); } @@ -193,7 +193,7 @@ R <i><token></i> <i><error report></i> <i><array of context * The command will fail if parent thread is not suspended. * Client can use Run Control service to suspend a thread. * - * <font color=#7F9FBF>@param</font> parent_context_id parent context ID. + * <font color=#7F9FBF>@param</font> parent_context_id – parent context ID. * <font color=#7F9FBF>@param</font> done - call back interface called when operation is completed. */</font> IToken getChildren(String parent_context_id, DoneGetChildren done); @@ -204,8 +204,8 @@ R <i><token></i> <i><error report></i> <i><array of context <font color=#7F0055>interface</font> DoneGetChildren { <font color=#3F5FBF>/** * Called when context list 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 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. * Stack frames are ordered from stack bottom to top. */</font> <font color=#7F0055>void</font> doneGetChildren(IToken token, Exception error, String[] context_ids); diff --git a/docs/TCF Service - System Monitor.html b/docs/TCF Service - System Monitor.html index fb9dbd1ed..8ed6c1211 100644 --- a/docs/TCF Service - System Monitor.html +++ b/docs/TCF Service - System Monitor.html @@ -38,7 +38,7 @@ see <a href='TCF Services.html#ErrorFormat'>Error Report Format</a>.</p> <h3><a name='CmdGetContext'>Get Context</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> SysMonitor getContext <i><string: context ID></i> +C • <i><token></i> • SysMonitor • getContext • <i><string: context ID></i> • </font></b></pre> <p>The command retrieves context info for given context ID. @@ -49,11 +49,11 @@ command with a context that was obtained from another service.</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> +R • <i><token></i> • <i><error report></i> • <i><context data></i> • <i><context data></i> - <font face=Wingdings>Ψ</font> null - <font face=Wingdings>Ψ</font> <i><object></i> + ⇒ null + ⇒ <i><object></i> </font></b></pre> <p>Context data object should, at least, contain member @@ -225,12 +225,12 @@ R <i><token></i> <i><error report></i> <i><context data> <h3><a name='CmdGetChildren'>Get Children</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> SysMonitor getChildren <i><string: parent context ID></i> +C • <i><token></i> • SysMonitor • getChildren • <i><string: parent context ID></i> • </font></b></pre> <p>The command requests a list of contexts available for System Monitor commands.</p> -<p>Parent context ID can be null to retrieve top level of the hierarchy, can be one +<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> @@ -238,22 +238,22 @@ choose layout that is most descriptive for a given target.</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> +R • <i><token></i> • <i><error report></i> • <i><array of context IDs></i> • <i><array of context IDs></i> - <font face=Wingdings>Ψ</font> null - <font face=Wingdings>Ψ</font> [ ] - <font face=Wingdings>Ψ</font> [ <i><context ID list></i> ] + ⇒ null + ⇒ [ ] + ⇒ [ <i><context ID list></i> ] <i><context ID list></i> - <font face=Wingdings>Ψ</font> <i><string: context ID></i> - <font face=Wingdings>Ψ</font> <i><context ID list></i> , <i><string: context ID></i> + ⇒ <i><string: context ID></i> + ⇒ <i><context ID list></i> , <i><string: context ID></i> </font></b></pre> <h3><a name='CmdGetCommandLine'>Get Command Line</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> SysMonitor getCommandLine <i><string: context ID></i> +C • <i><token></i> • SysMonitor • getCommandLine • <i><string: context ID></i> • </font></b></pre> <p>The command requests a list of progess command line arguments.</p> @@ -261,22 +261,22 @@ C <i><token></i> SysMonitor getCommandLine <i><string: context <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> <i><array of string></i> +R • <i><token></i> • <i><error report></i> • <i><array of string></i> • <i><array of string></i> - <font face=Wingdings>Ψ</font> null - <font face=Wingdings>Ψ</font> [ ] - <font face=Wingdings>Ψ</font> [ <i><string list></i> ] + ⇒ null + ⇒ [ ] + ⇒ [ <i><string list></i> ] <i><string list></i> - <font face=Wingdings>Ψ</font> <i><string></i> - <font face=Wingdings>Ψ</font> <i><string list></i> , <i><string></i> + ⇒ <i><string></i> + ⇒ <i><string list></i> , <i><string></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> SysMonitor getEnvironment <i><string: context ID></i> +C • <i><token></i> • SysMonitor • getEnvironment • <i><string: context ID></i> • </font></b></pre> <p>The command requests a list of progess environment variables.</p> @@ -284,7 +284,7 @@ C <i><token></i> SysMonitor getEnvironment <i><string: context <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> <i><array of string></i> +R • <i><token></i> • <i><error report></i> • <i><array of string></i> • </font></b></pre> <h2><a name='Events'>Events</a></h2> @@ -301,7 +301,7 @@ R <i><token></i> <i><error report></i> <i><array of string& <font color=#3F5FBF>/** * Retrieve context info for given context ID. * - * <font color=#7F9FBF>@param</font> id context ID. + * <font color=#7F9FBF>@param</font> id – context ID. * <font color=#7F9FBF>@param</font> done - callback interface called when operation is completed. */</font> IToken getContext(String id, DoneGetContext done); @@ -312,8 +312,8 @@ R <i><token></i> <i><error report></i> <i><array of string& <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 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, SysMonitorContext context); } @@ -321,7 +321,7 @@ R <i><token></i> <i><error report></i> <i><array of string& <font color=#3F5FBF>/** * Retrieve children of given context. * - * <font color=#7F9FBF>@param</font> parent_context_id parent context ID. Can be null + * <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> done - callback interface called when operation is completed. @@ -334,8 +334,8 @@ R <i><token></i> <i><error report></i> <i><array of string& <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 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); } @@ -517,109 +517,109 @@ R <i><token></i> <i><error report></i> <i><array of string& <font color=#3F5FBF>/** * Get context ID. - * Same as getProperties().get(ID) + * Same as getProperties().get(“ID”) */</font> String getID(); <font color=#3F5FBF>/** * Get parent context ID. - * Same as getProperties().get(ParentID) + * Same as getProperties().get(“ParentID”) */</font> String getParentID(); <font color=#3F5FBF>/** * Get process group ID. - * Same as getProperties().get(PGRP) + * Same as getProperties().get(“PGRP”) */</font> <font color=#7F0055>long</font> getPGRP(); <font color=#3F5FBF>/** * Get process ID. - * Same as getProperties().get(PID) + * Same as getProperties().get(“PID”) */</font> <font color=#7F0055>long</font> getPID(); <font color=#3F5FBF>/** * Get process parent ID. - * Same as getProperties().get(PPID) + * Same as getProperties().get(“PPID”) */</font> <font color=#7F0055>long</font> getPPID(); <font color=#3F5FBF>/** * Get process TTY group ID. - * Same as getProperties().get(TGID) + * Same as getProperties().get(“TGID”) */</font> <font color=#7F0055>long</font> getTGID(); <font color=#3F5FBF>/** * Get tracer process ID. - * Same as getProperties().get(TracerPID) + * Same as getProperties().get(“TracerPID”) */</font> <font color=#7F0055>long</font> getTracerPID(); <font color=#3F5FBF>/** * Get process owner user ID. - * Same as getProperties().get(UID) + * Same as getProperties().get(“UID”) */</font> <font color=#7F0055>long</font> getUID(); <font color=#3F5FBF>/** * Get process owner user name. - * Same as getProperties().get(UserName) + * Same as getProperties().get(“UserName”) */</font> String getUserName(); <font color=#3F5FBF>/** * Get process owner user group ID. - * Same as getProperties().get(UGID) + * Same as getProperties().get(“UGID”) */</font> <font color=#7F0055>long</font> getUGID(); <font color=#3F5FBF>/** * Get process owner user group name. - * Same as getProperties().get(GroupName) + * Same as getProperties().get(“GroupName”) */</font> String getGroupName(); <font color=#3F5FBF>/** * Get process state. - * Same as getProperties().get(State) + * Same as getProperties().get(“State”) */</font> String getState(); <font color=#3F5FBF>/** * Get process virtual memory size in bytes. - * Same as getProperties().get(VSize) + * Same as getProperties().get(“VSize”) */</font> <font color=#7F0055>long</font> getVSize(); <font color=#3F5FBF>/** * Get process virtual memory page size in bytes. - * Same as getProperties().get(PSize) + * Same as getProperties().get(“PSize”) */</font> <font color=#7F0055>long</font> getPSize(); <font color=#3F5FBF>/** * Get number of memory pages in process resident set. - * Same as getProperties().get(RSS) + * Same as getProperties().get(“RSS”) */</font> <font color=#7F0055>long</font> getRSS(); <font color=#3F5FBF>/** * Get context executable file. - * Same as getProperties().get(File) + * Same as getProperties().get(“File”) */</font> String getFile(); <font color=#3F5FBF>/** * Get context current file system root. - * Same as getProperties().get(Root) + * Same as getProperties().get(“Root”) */</font> String getRoot(); <font color=#3F5FBF>/** * Get context current working directory. - * Same as getProperties().get(CWD) + * Same as getProperties().get(“CWD”) */</font> String getCurrentWorkingDirectory(); diff --git a/docs/TCF Services.html b/docs/TCF Services.html index 38377555c..f0a527563 100644 --- a/docs/TCF Services.html +++ b/docs/TCF Services.html @@ -48,8 +48,8 @@ using a simple variant of Backus-Naur Form. In particular:</p> <pre><b><font face="Courier New" size=2 color=#333399> <i><chars></i> - <font face=Wingdings>Ψ</font> <i><char></i> - <font face=Wingdings>Ψ</font> <i><chars> <char></i> + ⇒ <i><char></i> + ⇒ <i><chars> <char></i> </font></b></pre> <ul type='disc'> @@ -58,7 +58,7 @@ using a simple variant of Backus-Naur Form. In particular:</p> <li>All text in the category definition, other than categories and spaces, is UTF-8 based representation of a message bytes. - <li>The symbol designates a zero byte. + <li>The symbol ‘•’ designates a zero byte. </ul> <h2><a name='ErrorFormat'>Error Report Format</a></h2> @@ -67,7 +67,7 @@ using a simple variant of Backus-Naur Form. In particular:</p> <pre><b><font face="Courier New" size=2 color=#333399> <i><error report></i> - <font face=Wingdings>Ψ</font> <i><int: error code></i> <i><error description></i> + ⇒ <i><int: error code></i> • <i><error description></i> </font></b></pre> <p>Error code zero means success. Error description provides a short, localizable, @@ -75,13 +75,13 @@ human readable explanation of error.</p> <pre><b><font face="Courier New" size=2 color=#333399> <i><error description></i> - <font face=Wingdings>Ψ</font> null - <font face=Wingdings>Ψ</font> <i><string></i> - <font face=Wingdings>Ψ</font> { "format" : <i><string></i> , "params" : [ <i><params></i> ] } + ⇒ null + ⇒ <i><string></i> + ⇒ { "format" : <i><string></i> , "params" : [ <i><params></i> ] } <i><params></i> - <font face=Wingdings>Ψ</font> <i><value></i> - <font face=Wingdings>Ψ</font> <i><params></i> , <i><value></i> + ⇒ <i><value></i> + ⇒ <i><params></i> , <i><value></i> </font></b></pre> <p>For <b><i><font face="Courier New" size=2 color=#333399><string></font></i></b> diff --git a/docs/TCF Specification.html b/docs/TCF Specification.html index 39becc8d1..6233ba279 100644 --- a/docs/TCF Specification.html +++ b/docs/TCF Specification.html @@ -85,8 +85,8 @@ A service can be discovered, added or removed as a group at communication endpoi <dt><b>Message:</b> <dd>a packet of data, formatted according to framework specification and transmitted over communication channel. -<dt><b>Channel:</b> <dd>communication link connecting two endpoints (peers). A single -channel may be used to communicate with multiple services. Multiple channels may +<dt><b>Channel:</b> <dd>communication link connecting two endpoints (peers). A single +channel may be used to communicate with multiple services. Multiple channels may be used to connect the same peers, however no command or event ordering is guaranteed across channels. @@ -139,14 +139,14 @@ them about state changes. <li>Services can be added and removed dynamically. - <li>Framework should define a set of common high level interfaces (services). For + <li>Framework should define a set of common high level interfaces (services). For example: flow control, memory access, registers access, up-load mechanism, kernel awareness, run control, target file system, console, flash programming. Implementation of these interfaces is optional, but if provided it will support much wider compatibility with various tools. <li>Framework should be layered in such a way so it is possible to use different transport - medias (e.g. TCP/IP, RS232, USB, etc) without any changes to individual services. + medias (e.g. TCP/IP, RS232, USB, etc) without any changes to individual services. In other words, transport implementation should be services agnostic, and services implementation should be transport agnostic. @@ -157,7 +157,7 @@ them about state changes. use. <li>The definition of services (groups of related commands and events) is separate - from the definition of the framework itself. The framework provides unified communication + from the definition of the framework itself. The framework provides unified communication mechanism, while services use it to communicate with its clients. <li>Anybody (including 3rd parties) can add services without having to modify communication @@ -183,7 +183,7 @@ them about state changes. <li>Supports of concurrent requests. Maximum number of concurrent requests (window size) can be limited on target side. Simple agents only have to support window size - of 1. Framework should maintain a queue of additional requests, so tools dont need + of 1. Framework should maintain a queue of additional requests, so tools don't need to know the window size. This may only be relevant for certain transport protocols e.g. UDP. @@ -203,15 +203,15 @@ using a simple variant of Backus-Naur Form. In particular:</p> </font></i></b>Category name can be followed by colon and a text, which explains semantics of the category, for example: <b><i><font face="Courier New" size=2 color=#333399><int: error code></font></i></b> has same meaning as <b><i><font face="Courier New" size=2 color=#333399><int></font></i></b>, - but denotes that the integer number used to indicate an error code. + but denotes that the integer number used to indicate an “error code”. <li>A syntax rule consists of a category designation followed by one or more syntax definitions for the category. The category name and each definition are placed on separate lines, bullets are used to denote definitions, for example: <pre><b><font face="Courier New" size=2 color=#333399> <i><chars></i> - <font face=Wingdings>Ψ</font> <i><char></i> - <font face=Wingdings>Ψ</font> <i><chars> <char></i> + ⇒ <i><char></i> + ⇒ <i><chars> <char></i> </font></b></pre> <li>Spaces are added for readability only and they are not part of the syntax. @@ -219,14 +219,14 @@ using a simple variant of Backus-Naur Form. In particular:</p> <li>All text in the category definition, other then categories and spaces, is UTF-8 based representation of a message bytes. - <li>The symbol designates a zero byte. + <li>The symbol ‘•’ designates a zero byte. </ul> <h1><a name='Design'>Framework Software Design Considerations</a></h1> <p>The framework will be packaged, distributed and installed on a host as separate product. It should be installed as system service and require no configuration for -most common case target connected over TCP or UDP on a local network. For more complicated +most common case – target connected over TCP or UDP on a local network. For more complicated setup, framework should have easily accessible and user friendly GUI with all relevant configuration options.</p> @@ -304,7 +304,7 @@ be asynchronous. Asynchronous functions do not have any return value, and return immediately, most of the time before the intended job is done. They take additional arguments to specify a callback function and callback data. In object-oriented languages such as Java, this is typically done by a single callback object argument containing -both the data and the function. The result listener is called asynchronously when +both the data and the function. The result listener is called asynchronously when the job is done. This approach is commonly known as asynchronous<b>, </b>event-driven<b> </b>or<b> </b>callback-based<b> </b>programming<b>.</b></p> @@ -318,7 +318,7 @@ of Control (also known as the Hollywood Principle - "Don't call us, we'll call y <p>Communication between development tools and embedded devices must allow a host to collect target side data and build a reflection of target state. Reflection is -usually incomplete a subset of all remote data. Reflection is always delayed it +usually incomplete – a subset of all remote data. Reflection is always delayed – it represents a remote peer state in the past. Reflection can be updated by polling for data changes or by listening to events (event is communication message that is sent asynchronously by a peer to notify others about state change). Reflection is correct @@ -388,7 +388,7 @@ value 3.</p> the client will know that command was executed <i>after</i> X was assigned 3, the last message contains last known value of X and 2 is the correct value to show. If the target is allowed to transmit events and results in arbitrary order, the client -will have no clue what to show 2 or 3. In fact, the client will have to make a tough +will have no clue what to show – 2 or 3. In fact, the client will have to make a tough decision about each message it receives: either trust message data as correct last known target state, or assume the message came in out-of-order and ignore it, or re-request the information from the target.</p> @@ -411,7 +411,7 @@ coming in frequently, client can end up in infinite loop re-requesting the data and again, and it will never have trustworthy data about current target state.</p> <p>Developers should be careful when using multithreading or multiple queues in software -design it can easily cause message reordering.</p> +design – it can easily cause message reordering.</p> <p>The framework itself is required to preserve message order. However, if for whatever reason a target agent cannot preserve message order, the result will be that clients @@ -455,25 +455,25 @@ example:</p> <li>Service Location Protocol (SLP), developed by the IETF; - <li>Jini, which is Suns Java-base approach to service discovery, see <a href='http://www.sun.com/jini'>http://www.sun.com/jini</a>; + <li>Jini, which is Sun's Java-base approach to service discovery, see <a href='http://www.sun.com/jini'>http://www.sun.com/jini</a>; <li>Salutation, developed by an open industry consortium, called the Salutation Consortium; - <li>Microsofts Universal Plug and Play (UPnP), see <a href='http://www.upnp.org/'>http://www.upnp.org</a>; + <li>Microsoft's Universal Plug and Play (UPnP), see <a href='http://www.upnp.org/'>http://www.upnp.org</a>; <li>Bluetooth Service Discovery Protocol (SDP). </ul> <p>Service discovery protocols, as well as transport protocols will be supported by framework plug-ins, they are not part of framework code itself, and they can be developed -by 3rd parties. Note that existing discovery protocols define term service differently +by 3rd parties. Note that existing discovery protocols define term “service” differently - as an independent communication endpoint (usually a TCP/IP port). In this document -it is called peer (host, target, communication endpoint), and a peer can provide +it is called “peer” (host, target, communication endpoint), and a peer can provide multiple services over single communication channel.</p> <p>Using of standard discovery protocols should be optional, because it can potentially cause conflict or interference between development tools and application being developed -over a use of same standard protocol devices software often includes implementation +over a use of same standard protocol – devices software often includes implementation of service discovery protocols as part of application code to support their main functions. </p> @@ -487,9 +487,9 @@ packet is treated as array of bytes at this level. The communication protocol im also provides:</p> <ul type='disc'> - <li>Multiplexing opening multiple channels per peer. + <li>Multiplexing – opening multiple channels per peer. - <li>Proxy packet forwarding in behalf of other hosts. + <li>Proxy – packet forwarding in behalf of other hosts. </ul> <p>Protocol defines three packet types: commands (requests), results (responses), @@ -501,24 +501,24 @@ using framework preferred marshaling for data formatting.</p> <p>Syntax:</p> <pre><b><font face="Courier New" size=2 color=#333399> <i><message></i> - <font face=Wingdings>Ψ</font> <i><command></i> - <font face=Wingdings>Ψ</font> <i><result></i> - <font face=Wingdings>Ψ</font> <i><event></i> - <font face=Wingdings>Ψ</font> <i><flow control message></i> + ⇒ <i><command></i> + ⇒ <i><result></i> + ⇒ <i><event></i> + ⇒ <i><flow control message></i> </font></b></pre> <h2><a name='ProtocolCommands'>Commands</a></h2> <pre><b><font face="Courier New" size=2 color=#333399> <i><command></i> - <font face=Wingdings>Ψ</font> C <i><token> </i> <i><service name> </i> <i><command name> </i> <i><byte array: arguments></i> + ⇒ C • <i><token> </i>• <i><service name> </i>• <i><command name> </i>• <i><byte array: arguments></i> </font></b></pre> -<p>Command packets start with string C.</p> +<p>Command packets start with string “C”.</p> <pre><b><font face="Courier New" size=2 color=#333399> <i><token></i> - <font face=Wingdings>Ψ</font> <i><chars></i> + ⇒ <i><chars></i> </font></b></pre> <p>Token is unique string generated by framework for each command. It is used to match @@ -526,7 +526,7 @@ results to commands.</p> <pre><b><font face="Courier New" size=2 color=#333399> <i><service name></i> - <font face=Wingdings>Ψ</font> <i><chars></i> + ⇒ <i><chars></i> </font></b></pre> <p>Service name is used to identify a service that handles the command, it is same @@ -534,13 +534,13 @@ string as returned by Service.getName().</p> <pre><b><font face="Courier New" size=2 color=#333399> <i><command name></i> - <font face=Wingdings>Ψ</font> <i><chars></i> + ⇒ <i><chars></i> </font></b></pre> <p>Command name interpretation depends on a service.</p> <p>A command should always be answered with result packed. Result does not have to -be positive it can include an error code, but there always must be one. Since client +be positive – it can include an error code, but there always must be one. Since client cannot detect that a response is missing, if for some reasons peer is not able to answer a command, it should consider such situation a fatal communication error and it must shutdown the communication channel. It is not necessary to wait for result @@ -554,19 +554,19 @@ store the requests and time to process them.</p> <pre><b><font face="Courier New" size=2 color=#333399> <i><result></i> - <font face=Wingdings>Ψ</font> R <i><token></i> <i><byte array: result data></i> - <font face=Wingdings>Ψ</font> P <i><token></i> <i><byte array: result data></i> + ⇒ R • <i><token></i> • <i><byte array: result data></i> + ⇒ P • <i><token></i> • <i><byte array: result data></i> </font></b></pre> -<p>Result packets start with string P for intermediate result and R for final -result. Receiving of R result concludes execution of corresponding command. -There should be exactly one R result for each command. In addition, command execution can produce any number of -intermediate P results. P results can be sent before R, and it can serve, for +<p>Result packets start with string “P” for intermediate result and “R” for final +result. Receiving of “R” result concludes execution of corresponding command. +There should be exactly one “R” result for each command. In addition, command execution can produce any number of +intermediate “P” results. “P” results can be sent before “R”, and it can serve, for example, as command execution progress report when execution takes long time.</p> <pre><b><font face="Courier New" size=2 color=#333399> <i><token></i> - <font face=Wingdings>Ψ</font> <i><chars></i> + ⇒ <i><chars></i> </font></b></pre> <p>Token should match token field of one of the pending commands that produced the result.</p> @@ -575,14 +575,14 @@ example, as command execution progress report when execution takes long time.</p <pre><b><font face="Courier New" size=2 color=#333399> <i><event></i> - <font face=Wingdings>Ψ</font> E <i><service name></i> <i><event name></i> <i><byte array: event data></i> + ⇒ E • <i><service name></i> • <i><event name></i> • <i><byte array: event data></i> </font></b></pre> -<p>Event packets start with string E.</p> +<p>Event packets start with string “E”.</p> <pre><b><font face="Courier New" size=2 color=#333399> <i><service name></i> - <font face=Wingdings>Ψ</font> <i><chars></i> + ⇒ <i><chars></i> </font></b></pre> <p>Service name identifies a service that fired event, same string as returned by @@ -590,7 +590,7 @@ Service.getName().</p> <pre><b><font face="Courier New" size=2 color=#333399> <i><event name></i> - <font face=Wingdings>Ψ</font> <i><chars></i> + ⇒ <i><chars></i> </font></b></pre> <p>Event name meaning depends on a service.</p> @@ -598,11 +598,11 @@ Service.getName().</p> <p>Events are used to notify clients about changes in peer state. Services should provide sufficient variety of events for clients to track remote peer state without too much of polling. Clients, interested in a particular aspect of the target state, -should have a reflection (or model) of that state and update the reflection by +should have a “reflection” (or “model”) of that state and update the reflection by listening for relevant events. If a service implements a command that changes a particular aspect of peers state, then, normally, it should also generate notifications event when that same part of the state changes and it should provide a command to retrieve -current value of the state to be used by clients to initialize the reflection. Service +current value of the state – to be used by clients to initialize the reflection. Service events are defined statically, together with commands. The framework does not do any event processing besides delivering them to clients, however a service can define additional event related functionality if necessary, for example, commands for event @@ -627,10 +627,10 @@ to less detailed messages, etc.</p> <pre><b><font face="Courier New" size=2 color=#333399> <i><flow control message></i> - <font face=Wingdings>Ψ</font> F <i><int: traffic congestion level></i> + ⇒ F • <i><int: traffic congestion level></i> • </font></b></pre> -<p>Traffic congestion level value is in range 100..100, where 100 means no pending +<p>Traffic congestion level value is in range –100..100, where –100 means no pending messages (no traffic), 0 means optimal load, and positive numbers indicate level of congestion. When a peer receives flow control message with congestion level > 0 it should try to reduce its transmition speed.</p> @@ -645,29 +645,29 @@ for actual data formats.</p> <p> </p> <pre> -Send : C 1 RunControl suspend Thread1 -Receive: E RunControl suspended Thread1 -Receive: R 1 Success +Send : C 1 RunControl suspend “Thread1” +Receive: E RunControl suspended “Thread1” +Receive: R 1 “Success” </pre> <p>Same command, but target was already suspended:</p> <pre> -Receive: E RunControl suspended Thread1 -
-Send : C 2 RunControl suspend Thread1 -Receive: R 2 Already suspended +Receive: E RunControl suspended “Thread1” +… +Send : C 2 RunControl suspend “Thread1” +Receive: R 2 “Already suspended” </pre> <p>Same command, but target was suspended (by another client) after sending the command, but before command was executed: </p> <pre> -Receive: E RunControl running Thread1 -
-Send : C 3 RunControl suspend Thread1 -Receive: E RunControl suspended Thread1 -Receive: R 3 Already suspended +Receive: E RunControl running “Thread1” +… +Send : C 3 RunControl suspend “Thread1” +Receive: E RunControl suspended “Thread1” +Receive: R 3 “Already suspended” </pre> <h2><a name='API'>Framework API</a></h2> @@ -681,10 +681,10 @@ Receive: R 3 Already suspended * 3. list of open communication channels. */</font> <font color=#7F0055>public class</font> Protocol { - - <font color=#7F0055>private static</font> IEventQueue <i>event_queue</i>; - - <font color=#3F5FBF>/** + + <font color=#7F0055>private static</font> IEventQueue <i>event_queue</i>; + + <font color=#3F5FBF>/** * Before TCF can be used it should be given an object implementing IEventQueue interface. * The implementation maintains a queue of objects implementing Runnable interface and * executes <code>run</code> methods of that objects in a sequence by a single thread. @@ -697,92 +697,92 @@ Receive: R 3 Already suspended * invoked from the dispatch thread. * * <font color=#7F9FBF>@param</font> event_queue - IEventQueue implementation. - */</font> - <font color=#7F0055>public static void</font> setEventQueue(IEventQueue event_queue); - - <font color=#3F5FBF>/** - * <font color=#7F9FBF>@return</font> instance of IEventQueue that should be used for TCF events. - */</font> - <font color=#7F0055>public static</font> IEventQueue getEventQueue(); - - <font color=#3F5FBF>/** - * Returns true if the calling thread is TCF dispatch thread. - * Use this call to ensure that a given task is being executed (or not being) - * on dispatch thread. - * This method is thread-safe. - * - * <font color=#7F9FBF>@return</font> true if running on the dispatch thread. - */</font> - <font color=#7F0055>public static boolean</font> isDispatchThread(); - - <font color=#3F5FBF>/** - * Causes runnable to have its run - * method called in the dispatch thread of the framework. - * Runnables are dispatched in same order as queued. + */</font> + <font color=#7F0055>public static void</font> setEventQueue(IEventQueue event_queue); + + <font color=#3F5FBF>/** + * <font color=#7F9FBF>@return</font> instance of IEventQueue that should be used for TCF events. + */</font> + <font color=#7F0055>public static</font> IEventQueue getEventQueue(); + + <font color=#3F5FBF>/** + * Returns true if the calling thread is TCF dispatch thread. + * Use this call to ensure that a given task is being executed (or not being) + * on dispatch thread. + * This method is thread-safe. + * + * <font color=#7F9FBF>@return</font> true if running on the dispatch thread. + */</font> + <font color=#7F0055>public static boolean</font> isDispatchThread(); + + <font color=#3F5FBF>/** + * Causes runnable to have its run + * method called in the dispatch thread of the framework. + * Runnables are dispatched in same order as queued. * If invokeLater is called from the dispatching thread * the <i>runnable.run()</i> will still be deferred until * all pending events have been processed. * * This method can be invoked from any thread. - * - * <font color=#7F9FBF>@param runnable</font> the Runnable whose run - * method should be executed asynchronously.</font> - */</font> - <font color=#7F0055>public static void</font> invokeLater(Runnable runnable); - - <font color=#3F5FBF>/** - * Causes runnable to have its run - * method called in the dispatch thread of the framework. - * Calling thread is suspended util the method is executed. - * This method is thread-safe. - * - * <font color=#7F9FBF>@param runnable</font> the Runnable whose run - * method should be executed on dispatch thread. - */</font> - <font color=#7F0055>public static void</font> invokeAndWait(Runnable runnable) - <font color=#7F0055>throws</font> InterruptedException; - - <font color=#3F5FBF>/** + * + * <font color=#7F9FBF>@param runnable</font> the Runnable whose run + * method should be executed asynchronously.</font> + */</font> + <font color=#7F0055>public static void</font> invokeLater(Runnable runnable); + + <font color=#3F5FBF>/** + * Causes runnable to have its run + * method called in the dispatch thread of the framework. + * Calling thread is suspended util the method is executed. + * This method is thread-safe. + * + * <font color=#7F9FBF>@param runnable</font> the Runnable whose run + * method should be executed on dispatch thread. + */</font> + <font color=#7F0055>public static void</font> invokeAndWait(Runnable runnable) + <font color=#7F0055>throws</font> InterruptedException; + + <font color=#3F5FBF>/** * Get instance of the framework locator service. * The service can be used to discover available remote peers. * * @return instance of ILocator. - */</font> + */</font> <font color=#7F0055>public static</font> ILocator getLocator(); - <font color=#3F5FBF>/** + <font color=#3F5FBF>/** * Return an array of all open channels. * @return an array of IChannel - */</font> + */</font> <font color=#7F0055>public static</font> IChannel[] getOpenChannels(); - <font color=#3F5FBF>/** + <font color=#3F5FBF>/** * Interface to be implemented by clients willing to be notified when * new TCF communication channel is opened. - */</font> + */</font> <font color=#7F0055>public interface</font> ChannelOpenListener { <font color=#7F0055>public void</font> onChannelOpen(IChannel channel); } - <font color=#3F5FBF>/** + <font color=#3F5FBF>/** * Add a listener that will be notified when new channel is opened. * @param listener - */</font> + */</font> <font color=#7F0055>public static void</font> addChannelOpenListener(ChannelOpenListener listener); - <font color=#3F5FBF>/** + <font color=#3F5FBF>/** * Remove channel opening listener. * @param listener - */</font> + */</font> <font color=#7F0055>public static void</font> removeChannelOpenListener(ChannelOpenListener listener); - <font color=#3F5FBF>/** + <font color=#3F5FBF>/** * Transmit TCF event message. - * The message is sent to all open communication channels broadcasted. - */</font> + * The message is sent to all open communication channels – broadcasted. + */</font> <font color=#7F0055>public static void</font> sendEvent(String service, String name, byte[] data); - <font color=#3F5FBF>/** + <font color=#3F5FBF>/** * Call back after TCF messages sent by this host up to this moment are delivered * to their intended target. This method is intended for synchronization of messages * across multiple channels. @@ -792,204 +792,204 @@ Receive: R 3 Already suspended * * @param done will be executed by dispatch thread after communication * messages are delivered to corresponding targets. - */</font> + */</font> <font color=#7F0055>public static void</font> sync(Runnable done); } <font color=#3F5FBF>/** - * IChannel represents communication link connecting two endpoints (peers). - * The channel asynchroniously transmits messages: commands, results and events. - * A single channel may be used to communicate with multiple services. - * Multiple channels may be used to connect the same peers, however no command or event - * ordering is guaranteed across channels. - */</font> + * IChannel represents communication link connecting two endpoints (peers). + * The channel asynchroniously transmits messages: commands, results and events. + * A single channel may be used to communicate with multiple services. + * Multiple channels may be used to connect the same peers, however no command or event + * ordering is guaranteed across channels. + */</font> <font color=#7F0055>public interface</font> IChannel { - - <font color=#3F5FBF>/** - * Channel state IDs - */</font> - <font color=#7F0055>static final</font> int - <i><font color=#0000C0>STATE_OPENNING</font></i> = 0, - <i><font color=#0000C0>STATE_OPEN</font></i> = 1, - <i><font color=#0000C0>STATE_CLOSED</font></i> = 2; - - <font color=#3F5FBF>/** - * <font color=#7F9FBF>@return</font> channel current state, see STATE_* - */</font> - int getState(); - - <font color=#3F5FBF>/** - * Send command message to remote peer for execution. Commands can be queued - * locally before transmission. Sending commands too fast can fill up - * communication channel buffers. Calling thread will be blocked until - * enough buffer space is freed up by transmitting pending messages. - */</font> - IToken sendCommand(IService service, String name, <font color=#7F0055>byte</font>[] args, - ICommandListener done); - - <font color=#3F5FBF>/** - * Command listener interface. Clients implement this interface - * to receive command results. - */</font> - <font color=#7F0055>interface</font> ICommandListener { - - <font color=#3F5FBF>/** - * Called when progress message (intermediate result) is received - * from remote peer. - */</font> - <font color=#7F0055>void</font> progress(<font color=#7F0055>byte</font>[] data); - - <font color=#3F5FBF>/** - * Called when command result received from remote peer. - */</font> - <font color=#7F0055>void</font> result(<font color=#7F0055>byte</font>[] data); - } - - <font color=#3F5FBF>/** - * Send result message to remote peer. Messages can be queued locally before - * transmission. Sending messages too fast can fill up communication channel - * buffers. Calling thread will be blocked until enough buffer space is - * freed up by transmitting pending messages. - */</font> - <font color=#7F0055>void</font> sendResult(IToken token, <font color=#7F0055>byte</font>[] results); - - <font color=#3F5FBF>/** - * Get current level of outbound traffic congestion. - * - * <font color=#7F9FBF>@return</font> integer value in range 100..100, where 100 means no pending - * messages (no traffic), 0 means optimal load, and positive numbers - * indicate level of congestion. - * - * Note: inbound traffic congestion is detected by framework and reported to - * remote peer without client needed to be involved. - */</font> - int getCongestion(); - - <font color=#3F5FBF>/** - * Channel listener interface. - */</font> - <font color=#7F0055>interface</font> IChannelListener { - - <font color=#3F5FBF>/** - * Notifies listeners about congestion level changes. When level > 0 - * client should delay sending more messages. - */</font> - <font color=#7F0055>void</font> congestionLevel(int level); - } - - <font color=#3F5FBF>/** - * Subscribe a channel listener. The listener will be notified about changes of - * outbound traffic congestion level. - */</font> - <font color=#7F0055>void</font> addChannelListener(IChannelListener listener); - - <font color=#3F5FBF>/** - * Remove a channel listener. - */</font> - <font color=#7F0055>void</font> removeChannelListener(IChannelListener listener); - - <font color=#3F5FBF>/** - * Command server interface. - * This interface is to be implemented by service providers. - */</font> - <font color=#7F0055>interface</font> ICommandServer { - - <font color=#3F5FBF>/** - * Called every time a command is received from remote peer. - */</font> - <font color=#7F0055>void</font> command(IToken token, String name, <font color=#7F0055>byte</font>[] data); - } - - <font color=#3F5FBF>/** - * Subscribe a command server. The server will be notified about command - * messages received through this channel for given service. - */</font> - <font color=#7F0055>void</font> addCommandServer(IService service, ICommandServer listener); - - <font color=#3F5FBF>/** - * Remove a command server. - */</font> - <font color=#7F0055>void</font> removeCommandServer(IService service, ICommandServer listener); + + <font color=#3F5FBF>/** + * Channel state IDs + */</font> + <font color=#7F0055>static final</font> int + <i><font color=#0000C0>STATE_OPENNING</font></i> = 0, + <i><font color=#0000C0>STATE_OPEN</font></i> = 1, + <i><font color=#0000C0>STATE_CLOSED</font></i> = 2; + + <font color=#3F5FBF>/** + * <font color=#7F9FBF>@return</font> channel current state, see STATE_* + */</font> + int getState(); + + <font color=#3F5FBF>/** + * Send command message to remote peer for execution. Commands can be queued + * locally before transmission. Sending commands too fast can fill up + * communication channel buffers. Calling thread will be blocked until + * enough buffer space is freed up by transmitting pending messages. + */</font> + IToken sendCommand(IService service, String name, <font color=#7F0055>byte</font>[] args, + ICommandListener done); + + <font color=#3F5FBF>/** + * Command listener interface. Clients implement this interface + * to receive command results. + */</font> + <font color=#7F0055>interface</font> ICommandListener { + + <font color=#3F5FBF>/** + * Called when progress message (intermediate result) is received + * from remote peer. + */</font> + <font color=#7F0055>void</font> progress(<font color=#7F0055>byte</font>[] data); + + <font color=#3F5FBF>/** + * Called when command result received from remote peer. + */</font> + <font color=#7F0055>void</font> result(<font color=#7F0055>byte</font>[] data); + } + + <font color=#3F5FBF>/** + * Send result message to remote peer. Messages can be queued locally before + * transmission. Sending messages too fast can fill up communication channel + * buffers. Calling thread will be blocked until enough buffer space is + * freed up by transmitting pending messages. + */</font> + <font color=#7F0055>void</font> sendResult(IToken token, <font color=#7F0055>byte</font>[] results); + + <font color=#3F5FBF>/** + * Get current level of outbound traffic congestion. + * + * <font color=#7F9FBF>@return</font> integer value in range –100..100, where –100 means no pending + * messages (no traffic), 0 means optimal load, and positive numbers + * indicate level of congestion. + * + * Note: inbound traffic congestion is detected by framework and reported to + * remote peer without client needed to be involved. + */</font> + int getCongestion(); + + <font color=#3F5FBF>/** + * Channel listener interface. + */</font> + <font color=#7F0055>interface</font> IChannelListener { + + <font color=#3F5FBF>/** + * Notifies listeners about congestion level changes. When level > 0 + * client should delay sending more messages. + */</font> + <font color=#7F0055>void</font> congestionLevel(int level); + } + + <font color=#3F5FBF>/** + * Subscribe a channel listener. The listener will be notified about changes of + * outbound traffic congestion level. + */</font> + <font color=#7F0055>void</font> addChannelListener(IChannelListener listener); + + <font color=#3F5FBF>/** + * Remove a channel listener. + */</font> + <font color=#7F0055>void</font> removeChannelListener(IChannelListener listener); + + <font color=#3F5FBF>/** + * Command server interface. + * This interface is to be implemented by service providers. + */</font> + <font color=#7F0055>interface</font> ICommandServer { + + <font color=#3F5FBF>/** + * Called every time a command is received from remote peer. + */</font> + <font color=#7F0055>void</font> command(IToken token, String name, <font color=#7F0055>byte</font>[] data); + } + + <font color=#3F5FBF>/** + * Subscribe a command server. The server will be notified about command + * messages received through this channel for given service. + */</font> + <font color=#7F0055>void</font> addCommandServer(IService service, ICommandServer listener); + + <font color=#3F5FBF>/** + * Remove a command server. + */</font> + <font color=#7F0055>void</font> removeCommandServer(IService service, ICommandServer listener); <font color=#3F5FBF>/** - * A generic interface for service event listener. - * Services usually define a service specific event listener interface, - * which is implemented using this generic listener. - * Service clients should use service specific listener interface, - * unless no such interface is defined. - */</font> - <font color=#7F0055>interface</font> IEventListener { - <font color=#7F0055>void</font> event(String name, <font color=#7F0055>byte</font>[] data); - } - - <font color=#3F5FBF>/** - * Subscribe an event message listener for given service. - */</font> - <font color=#7F0055>void</font> addEventListener(IService service, IEventListener listener); - - <font color=#3F5FBF>/** - * Unsubscribe an event message listener for given service. - */</font> - <font color=#7F0055>void</font> removeEventListener(IService service, IEventListener listener); + * A generic interface for service event listener. + * Services usually define a service specific event listener interface, + * which is implemented using this generic listener. + * Service clients should use service specific listener interface, + * unless no such interface is defined. + */</font> + <font color=#7F0055>interface</font> IEventListener { + <font color=#7F0055>void</font> event(String name, <font color=#7F0055>byte</font>[] data); + } + + <font color=#3F5FBF>/** + * Subscribe an event message listener for given service. + */</font> + <font color=#7F0055>void</font> addEventListener(IService service, IEventListener listener); + + <font color=#3F5FBF>/** + * Unsubscribe an event message listener for given service. + */</font> + <font color=#7F0055>void</font> removeEventListener(IService service, IEventListener listener); + + <font color=#3F5FBF>/** + * <font color=#7F9FBF>@return</font> IPeer object representing local endpoint of communication channel. + */</font> + IPeer getLocalPeer(); + + <font color=#3F5FBF>/** + * <font color=#7F9FBF>@return</font> IPeer object representing remote endpoint of communication channel. + */</font> + IPeer getRemotePeer(); + + <font color=#3F5FBF>/** + * <font color=#7F9FBF>@return</font> map of services available on local peer. It maps service names to + * IService implemetations. + */</font> + Map<String, IService> getLocalServices(); + + <font color=#3F5FBF>/** + * <font color=#7F9FBF>@return</font> map of services available on removte peer. It maps service names to + * IService implemetations. + */</font> + Map<String, IService> getRemoteServices(); <font color=#3F5FBF>/** - * <font color=#7F9FBF>@return</font> IPeer object representing local endpoint of communication channel. - */</font> - IPeer getLocalPeer(); - - <font color=#3F5FBF>/** - * <font color=#7F9FBF>@return</font> IPeer object representing remote endpoint of communication channel. - */</font> - IPeer getRemotePeer(); - - <font color=#3F5FBF>/** - * <font color=#7F9FBF>@return</font> map of services available on local peer. It maps service names to - * IService implemetations. - */</font> - Map<String, IService> getLocalServices(); - - <font color=#3F5FBF>/** - * <font color=#7F9FBF>@return</font> map of services available on removte peer. It maps service names to - * IService implemetations. - */</font> - Map<String, IService> getRemoteServices(); - - <font color=#3F5FBF>/** - * Close communication channel. - */</font> - <font color=#7F0055>void</font> close(); - - <font color=#3F5FBF>/** - * Close channel in case of communication error. - * <font color=#7F9FBF>@param error</font> - */</font> - <font color=#7F0055>void</font> terminate(Throwable error); - - <font color=#3F5FBF>/** - * Redirect this channel to given peer using this channel remote peer - * locator service as a proxy. - * <font color=#7F9FBF>@param peer_id</font> - */</font> - <font color=#7F0055>void</font> redirect(String peer_id); + * Close communication channel. + */</font> + <font color=#7F0055>void</font> close(); + + <font color=#3F5FBF>/** + * Close channel in case of communication error. + * <font color=#7F9FBF>@param error</font> + */</font> + <font color=#7F0055>void</font> terminate(Throwable error); + + <font color=#3F5FBF>/** + * Redirect this channel to given peer using this channel remote peer + * locator service as a proxy. + * <font color=#7F9FBF>@param peer_id</font> + */</font> + <font color=#7F0055>void</font> redirect(String peer_id); } <font color=#3F5FBF>/** * Object implemeting IToken interface is created by framework for every - * command sent over communication channel. It is used to match command to its - * results, and also can be used to cancel commands. - */</font> + * command sent over communication channel. It is used to match command to its + * results, and also can be used to cancel commands. + */</font> <font color=#7F0055>public</font> interface IToken { - - <font color=#3F5FBF>/** - * Try to cancel a command associated with given token. A command can be - * canceled by this method only if it was not transmitted yet to remote peer - * for execution. Successfully canceled command does not produce any result - * messages. - * - * <font color=#7F9FBF>@return</font> true if successful. - */</font> - <font color=#7F0055>boolean</font> cancel(); + + <font color=#3F5FBF>/** + * Try to cancel a command associated with given token. A command can be + * canceled by this method only if it was not transmitted yet to remote peer + * for execution. Successfully canceled command does not produce any result + * messages. + * + * <font color=#7F9FBF>@return</font> true if successful. + */</font> + <font color=#7F0055>boolean</font> cancel(); } </pre> @@ -1034,82 +1034,82 @@ using UTF-8 encoding.</p> <pre><b><font face="Courier New" size=2 color=#333399> <i><object></i> - <font face=Wingdings>Ψ</font> {} - <font face=Wingdings>Ψ</font> { <i><members></i> } - + ⇒ {} + ⇒ { <i><members></i> } + <i><members></i> - <font face=Wingdings>Ψ</font> <i><string></i> : <i><value></i> - <font face=Wingdings>Ψ</font> <i><members></i> , <i><string></i> : <i><value></i> + ⇒ <i><string></i> : <i><value></i> + ⇒ <i><members></i> , <i><string></i> : <i><value></i> <i><array></i> - <font face=Wingdings>Ψ</font> [] - <font face=Wingdings>Ψ</font> [ <i><elements></i> ] + ⇒ [] + ⇒ [ <i><elements></i> ] <i><elements></i> - <font face=Wingdings>Ψ</font> <i><value></i> - <font face=Wingdings>Ψ</font> <i><elements</i>> , <i><value></i> + ⇒ <i><value></i> + ⇒ <i><elements</i>> , <i><value></i> <i><value></i> - <font face=Wingdings>Ψ</font> <i><string></i> - <font face=Wingdings>Ψ</font> <i><number></i> - <font face=Wingdings>Ψ</font> <i><object></i> - <font face=Wingdings>Ψ</font> <i><array></i> - <font face=Wingdings>Ψ</font> <i><boolean></i> - <font face=Wingdings>Ψ</font> null + ⇒ <i><string></i> + ⇒ <i><number></i> + ⇒ <i><object></i> + ⇒ <i><array></i> + ⇒ <i><boolean></i> + ⇒ null <i><boolean></i> - <font face=Wingdings>Ψ</font> true - <font face=Wingdings>Ψ</font> false + ⇒ true + ⇒ false <i><string></i> - <font face=Wingdings>Ψ</font> "" - <font face=Wingdings>Ψ</font> " <i><chars></i> " + ⇒ "" + ⇒ " <i><chars></i> " <i><chars></i> - <font face=Wingdings>Ψ</font> <i><char></i> - <font face=Wingdings>Ψ</font> <i><chars> <char></i> + ⇒ <i><char></i> + ⇒ <i><chars> <char></i> <i><char</i>> - <font face=Wingdings>Ψ</font> <i><any Unicode except " or \ or control></i> - <font face=Wingdings>Ψ</font> \"<i></i> - <font face=Wingdings>Ψ</font> \\<i></i> - <font face=Wingdings>Ψ</font> \/<i></i> - <font face=Wingdings>Ψ</font> \b<i></i> - <font face=Wingdings>Ψ</font> \f<i></i> - <font face=Wingdings>Ψ</font> \n<i></i> - <font face=Wingdings>Ψ</font> \r<i></i> - <font face=Wingdings>Ψ</font> \t<i></i> - <font face=Wingdings>Ψ</font> \u <i><four-hex-digits></i> + ⇒ <i><any Unicode except " or \ or control></i> + ⇒ \"<i></i> + ⇒ \\<i></i> + ⇒ \/<i></i> + ⇒ \b<i></i> + ⇒ \f<i></i> + ⇒ \n<i></i> + ⇒ \r<i></i> + ⇒ \t<i></i> + ⇒ \u <i><four-hex-digits></i> <i><number</i>> - <font face=Wingdings>Ψ</font> <i><int></i> - <font face=Wingdings>Ψ</font> <<i>int> <fraction></i> - <font face=Wingdings>Ψ</font> <<i>int> <exponent></i> - <font face=Wingdings>Ψ</font> <<i>int> <fraction> <exponent></i> - + ⇒ <i><int></i> + ⇒ <<i>int> <fraction></i> + ⇒ <<i>int> <exponent></i> + ⇒ <<i>int> <fraction> <exponent></i> + <i><int></i> - <font face=Wingdings>Ψ</font> <i><digit></i> - <font face=Wingdings>Ψ</font> <<i>digit 1-9> <digits></i> - <font face=Wingdings>Ψ</font> - <<i>digit></i> - <font face=Wingdings>Ψ</font> - <<i>digit 1-9> <digits</i>> + ⇒ <i><digit></i> + ⇒ <<i>digit 1-9> <digits></i> + ⇒ - <<i>digit></i> + ⇒ - <<i>digit 1-9> <digits</i>> <i><fraction></i> - <font face=Wingdings>Ψ</font> . <i><digits></i> + ⇒ . <i><digits></i> <i><exponent></i> - <font face=Wingdings>Ψ</font> <i><e></i> <i><digits></i> + ⇒ <i><e></i> <i><digits></i> <i><digits></i> - <font face=Wingdings>Ψ</font> <i><digit></i> - <font face=Wingdings>Ψ</font> <<i>digits></i> <<i>digit></i> + ⇒ <i><digit></i> + ⇒ <<i>digits></i> <<i>digit></i> <i><e></i> - <font face=Wingdings>Ψ</font> e - <font face=Wingdings>Ψ</font> e+ - <font face=Wingdings>Ψ</font> e- - <font face=Wingdings>Ψ</font> E - <font face=Wingdings>Ψ</font> E+ - <font face=Wingdings>Ψ</font> E- + ⇒ e + ⇒ e+ + ⇒ e- + ⇒ E + ⇒ E+ + ⇒ E- </font></b></pre> @@ -1120,32 +1120,32 @@ using UTF-8 encoding.</p> <p>This is a JSON array containing two objects:</p> <pre> - [ - { - "Precision": "zip", - "Latitude": 37.7668, - "Longitude": -122.3959, - "City": "SAN FRANCISCO", - "State": "CA", - "Zip": "94107", - "Country": "US" - }, - { - "Precision": "zip", - "Latitude": 37.371991, - "Longitude": -122.026020, - "City": "SUNNYVALE", - "State": "CA", - "Zip": "94085", - "Country": "US" - } - ] + [ + { + "Precision": "zip", + "Latitude": 37.7668, + "Longitude": -122.3959, + "City": "SAN FRANCISCO", + "State": "CA", + "Zip": "94107", + "Country": "US" + }, + { + "Precision": "zip", + "Latitude": 37.371991, + "Longitude": -122.026020, + "City": "SUNNYVALE", + "State": "CA", + "Zip": "94085", + "Country": "US" + } + ] </pre> <h1><a name='Locator'>Locator Service</a></h1> <p>Locator Service uses transport layer to search for peers and to collect data about -peers attributes and capabilities (services). Discovery mechanism depends on transport +peer's attributes and capabilities (services). Discovery mechanism depends on transport protocol and is part of that protocol handler. Targets, known by other hosts, are added to local list of peers. <font color=red>Security? </font>Automatically discovered targets require no further configuration. Additional targets can be configured manually.</p> @@ -1196,7 +1196,7 @@ at services it implements (use IChannel.getRemoteServices() method to get a map <h3><a name='LocatorCommandRedirect'>redirect</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> Locator redirect <i><string: peer ID></i> +C • <i><token></i> • Locator • redirect • <i><string: peer ID></i> • </font></b></pre> <p>The command redirects the channel to become connected to given peer. @@ -1205,13 +1205,13 @@ Locator service starts acting as a proxy.</p> <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> <i><error report></i> +R • <i><token></i> • <i><error report></i> • </font></b></pre> <h3><a name='LocatorCommandSync'>sync</a></h3> <pre><b><font face="Courier New" size=2 color=#333399> -C <i><token></i> Locator sync +C • <i><token></i> • Locator • sync • </font></b></pre> <p>Sync command does nothing and simply returns back an empty result. The command is used for @@ -1221,16 +1221,16 @@ for sync result a client makes sure that all commands, that were issued before s <p>Reply:</p> <pre><b><font face="Courier New" size=2 color=#333399> -R <i><token></i> +R • <i><token></i> • </font></b></pre> <h2><a name='LocatorEvents'>Locator Service Events</a></h2> <pre><b><font face="Courier New" size=2 color=#333399> -E Locator Hello <i><array: service names></i> -E Locator peerAdded <i><object: peer data></i> -E Locator peerChanged <i><object: peer data></i> -E Locator peerRemoved <i><string: peer ID></i> +E • Locator • Hello • <i><array: service names></i> • +E • Locator • peerAdded • <i><object: peer data></i> • +E • Locator • peerChanged • <i><object: peer data></i> • +E • Locator • peerRemoved • <i><string: peer ID></i> • </font></b></pre> <dl> @@ -1254,86 +1254,86 @@ E Locator peerRemoved <i><string: peer ID></i> <pre> <font color=#3F5FBF>/** - * Base interface for all service interfaces. - * A client can get list of available services by - * calling IPeer.getLocalServices or IPeer.getRemoteServives - */</font> + * Base interface for all service interfaces. + * A client can get list of available services by + * calling IPeer.getLocalServices or IPeer.getRemoteServives + */</font> <font color=#7F0055>public</font> interface IService { - <font color=#3F5FBF>/** - * Get unique name of this service. - */</font> - String getName(); + <font color=#3F5FBF>/** + * Get unique name of this service. + */</font> + String getName(); } <font color=#3F5FBF>/** - * Both hosts and targets are represented by objects - * implementing IPeer interface. A peer can act as host or - * target depending on services it implements. - * List of currently known peers can be retrieved by - * calling ILocator.getPeers - */</font> + * Both hosts and targets are represented by objects + * implementing IPeer interface. A peer can act as host or + * target depending on services it implements. + * List of currently known peers can be retrieved by + * calling ILocator.getPeers + */</font> <font color=#7F0055>public interface</font> IPeer { - - <font color=#7F0055>static final</font> String - <i><font color=#0000C0>ATTR_ID</font></i> = <font color=#2A00FF>"ID"</font>, - <i><font color=#0000C0>ATTR_NAME</font></i> = <font color=#2A00FF>"Name"</font>, - <i><font color=#0000C0>ATTR_OS_NAME</font></i> = <font color=#2A00FF>"OSName"</font>, - <i><font color=#0000C0>ATTR_TRANSPORT_NAME</font></i> = <font color=#2A00FF>"TransportName"</font>, - <i><font color=#0000C0>ATTR_IP_HOST</font></i> = <font color=#2A00FF>"Host"</font>, - <i><font color=#0000C0>ATTR_IP_ALIASES</font></i> = <font color=#2A00FF>"Aliases"</font>, - <i><font color=#0000C0>ATTR_IP_ADDRESSES</font></i> = <font color=#2A00FF>"Addresses"</font>, - <i><font color=#0000C0>ATTR_IP_PORT</font></i> = <font color=#2A00FF>"Port"</font>; - - - <font color=#3F5FBF>/** - * <font color=#7F9FBF>@return</font> map of peer attributes - */</font> - Map<String, String> getAttributes(); - - <font color=#3F5FBF>/** - * <font color=#7F9FBF>@return</font> peer unique ID, same as getAttributes().get(ATTR_ID) - */</font> - String getID(); - - <font color=#3F5FBF>/** - * <font color=#7F9FBF>@return</font> peer name, same as getAttributes().get(ATTR_NAME) - */</font> - String getName(); - - <font color=#3F5FBF>/** - * Same as getAttributes().get(ATTR_OS_NAME) - */</font> - String getOSName(); - - <font color=#3F5FBF>/** - * Same as getAttributes().get(ATTR_TRANSPORT_NAME) - */</font> - String getTransportName(); - - <font color=#3F5FBF>/** - * Open channel to communicate with this peer. - * Note: the channel is not fully open yet when this method returns. - * Its state is IChannel.STATE_OPENNING. - * Protocol.Listener will be called when the channel will be opened or closed. - */</font> - IChannel openChannel() <font color=#7F0055>throws</font> IOException; + + <font color=#7F0055>static final</font> String + <i><font color=#0000C0>ATTR_ID</font></i> = <font color=#2A00FF>"ID"</font>, + <i><font color=#0000C0>ATTR_NAME</font></i> = <font color=#2A00FF>"Name"</font>, + <i><font color=#0000C0>ATTR_OS_NAME</font></i> = <font color=#2A00FF>"OSName"</font>, + <i><font color=#0000C0>ATTR_TRANSPORT_NAME</font></i> = <font color=#2A00FF>"TransportName"</font>, + <i><font color=#0000C0>ATTR_IP_HOST</font></i> = <font color=#2A00FF>"Host"</font>, + <i><font color=#0000C0>ATTR_IP_ALIASES</font></i> = <font color=#2A00FF>"Aliases"</font>, + <i><font color=#0000C0>ATTR_IP_ADDRESSES</font></i> = <font color=#2A00FF>"Addresses"</font>, + <i><font color=#0000C0>ATTR_IP_PORT</font></i> = <font color=#2A00FF>"Port"</font>; + + + <font color=#3F5FBF>/** + * <font color=#7F9FBF>@return</font> map of peer attributes + */</font> + Map<String, String> getAttributes(); + + <font color=#3F5FBF>/** + * <font color=#7F9FBF>@return</font> peer unique ID, same as getAttributes().get(ATTR_ID) + */</font> + String getID(); + + <font color=#3F5FBF>/** + * <font color=#7F9FBF>@return</font> peer name, same as getAttributes().get(ATTR_NAME) + */</font> + String getName(); + + <font color=#3F5FBF>/** + * Same as getAttributes().get(ATTR_OS_NAME) + */</font> + String getOSName(); + + <font color=#3F5FBF>/** + * Same as getAttributes().get(ATTR_TRANSPORT_NAME) + */</font> + String getTransportName(); + + <font color=#3F5FBF>/** + * Open channel to communicate with this peer. + * Note: the channel is not fully open yet when this method returns. + * It's state is IChannel.STATE_OPENNING. + * Protocol.Listener will be called when the channel will be opened or closed. + */</font> + IChannel openChannel() <font color=#7F0055>throws</font> IOException; } <font color=#3F5FBF>/** - * ILocator service uses transport layer to search for peers and to collect data about - * peers attributes and capabilities (services). Discovery mechanism depends on - * transport protocol and is part of that protocol handler. Targets, known by other - * hosts, are added to local list of peers. - * Automatically discovered targets require no further configuration. Additional targets - * can be configured manually. - * - * Clients should use Protocol.getLocator() to obtain local instance of ILocator, - * then ILocator.getPeers() can be used to get of available peers (hosts and targets). - */</font> + * ILocator service uses transport layer to search for peers and to collect data about + * peer's attributes and capabilities (services). Discovery mechanism depends on + * transport protocol and is part of that protocol handler. Targets, known by other + * hosts, are added to local list of peers. + * Automatically discovered targets require no further configuration. Additional targets + * can be configured manually. + * + * Clients should use Protocol.getLocator() to obtain local instance of ILocator, + * then ILocator.getPeers() can be used to get of available peers (hosts and targets). + */</font> <font color=#7F0055>public interface</font> ILocator <font color=#7F0055>extends</font> IService { - - <font color=#7F0055>static final</font> String <i><font color=#0000C0>NAME</font></i> = <font color=#2A00FF>"Locator"</font>; + + <font color=#7F0055>static final</font> String <i><font color=#0000C0>NAME</font></i> = <font color=#2A00FF>"Locator"</font>; <font color=#3F5FBF>/** * Auto-configuration command and response codes. @@ -1342,28 +1342,28 @@ E Locator peerRemoved <i><string: peer ID></i> <i><font color=#0000C0>CONF_REQ_INFO</font></i> = 1, <i><font color=#0000C0>CONF_PEER_INFO</font></i> = 2; - <font color=#3F5FBF>/** - * <font color=#7F9FBF>@return</font> Locator service name: "Locator" - */</font> - String getName(); + <font color=#3F5FBF>/** + * <font color=#7F9FBF>@return</font> Locator service name: "Locator" + */</font> + String getName(); - <font color=#3F5FBF>/** + <font color=#3F5FBF>/** * Get map (ID -> IPeer) of available peers (hosts and targets). * The method return cached (currently known to the framework) list of peers. * The list is updated according to event received from transport layer - */</font> - Map<String,IPeer> getPeers(); - - <font color=#3F5FBF>/** - * Redirect this service channel to given peer using this service as a proxy. - */</font> - IToken redirect(String peer_id, DoneRedirect done); - - <font color=#7F0055>interface</font> DoneRedirect { - <font color=#7F0055>void</font> doneRedirect(IToken token, Exception error); - } - - <font color=#3F5FBF>/** + */</font> + Map<String,IPeer> getPeers(); + + <font color=#3F5FBF>/** + * Redirect this service channel to given peer using this service as a proxy. + */</font> + IToken redirect(String peer_id, DoneRedirect done); + + <font color=#7F0055>interface</font> DoneRedirect { + <font color=#7F0055>void</font> doneRedirect(IToken token, Exception error); + } + + <font color=#3F5FBF>/** * Call back after TCF messages sent to this target up to this moment are delivered. * This method is intended for synchronization of messages * across multiple channels. @@ -1382,23 +1382,23 @@ E Locator peerRemoved <i><string: peer ID></i> <font color=#7F0055>void</font> doneSync(IToken token); } - <font color=#3F5FBF>/** - * Add a listener for locator service events. - */</font> - <font color=#7F0055>void</font> addListener(Listener listener); + <font color=#3F5FBF>/** + * Add a listener for locator service events. + */</font> + <font color=#7F0055>void</font> addListener(Listener listener); - <font color=#3F5FBF>/** - * Remove a listener for locator service events. - */</font> - <font color=#7F0055>void</font> removeListener(Listener listener); + <font color=#3F5FBF>/** + * Remove a listener for locator service events. + */</font> + <font color=#7F0055>void</font> removeListener(Listener listener); - <font color=#7F0055>interface</font> Listener { - <font color=#7F0055>void</font> peerAdded(IPeer peer); + <font color=#7F0055>interface</font> Listener { + <font color=#7F0055>void</font> peerAdded(IPeer peer); - <font color=#7F0055>void</font> peerRemoved(IPeer peer); + <font color=#7F0055>void</font> peerRemoved(IPeer peer); - <font color=#7F0055>void</font> peerChanged(IPeer peer); - } + <font color=#7F0055>void</font> peerChanged(IPeer peer); + } } </pre> |