Studio:Transport Server Component: Difference between revisions
No edit summary |
m (Text replace - 'Category:Reference' to 'Category:Studio:Reference') |
||
(90 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
__FORCETOC__ | __FORCETOC__ | ||
== The Transport | == The Host Transport Services == | ||
The Host Transport Services define an interface that enables the STRIDE Runtime on your host to send data to and receive data from the target. The STRIDE Transport Server connects the Transport DLL to the STRIDE Runtime running on the host platform, thus providing indirect access to the target from [[STRIDE Studio]], [[AutoScript]], and other STRIDE applications. Several common transports are already supported within the STRIDE Transport Server, including serial and TCP/IP. | |||
[[Image:Transport diagram.gif|center|Host Transport Services Diagram]] | |||
The Host Transport Services are defined in "transport.h" and each Transport DLL must implement the interfaces derived from the IStrideTransport class. | |||
Refer to the [[Media:s2sTransport.pdf|STRIDE Host Runtime Transport Specification]] document for a more detailed description of the Host Transport Services. | |||
== The Transport Server == | |||
The Transport Server is an out-of-process COM server that fields client requests to a target and provides connection management, loopback and diagnostic features. The client communicates to the Transport Server. The Transport Server communicates to the target runtime of a target. | |||
To access the transport server, a client first registers with to it using a process id (PID). This is done transparently for script clients using the script wrapper named '''STRIDE.transport'''. In JScript getting ahold of the transport server may be done as follows: | |||
<source lang="javascript"> | |||
var tpserver = new ActiveXObject("STRIDE.transport"); | |||
</source> | |||
{| | == Transport Server API == | ||
This section contains all the applicable API to reference transport server functionality. | |||
=== transport === | |||
This is the root-level object. It provides direct access to the top-level transport objects. | |||
{| cellspacing="0" cellpadding="10" width="100%" border="1" | |||
|- | |- | ||
| width="190" bgcolor="#66ff99" | '''Member'''<br> | |||
| width="100" bgcolor="#66ff99" | '''Type'''<br> | |||
| bgcolor="#66ff99" | '''Description'''<br> | |||
|- | |- | ||
| | | HRESULT '''Init ('''<br> long ProcessId,<br> boolean pVal<br>''')''' | ||
| Method | | Method | ||
| | | Method to initialize the transport server. | ||
|- | |- | ||
| | | HRESULT '''Terminate ('''<br> long ProcessId<br>''')''' | ||
| Method | | Method | ||
| | | Method to terminate the transport server. | ||
|- | |- | ||
| | | [[Transport Server Component#transport.Connection|Connection]] | ||
| | | Property,<br>'''Read-only''',<br>Object | ||
| | | The Connection object. | ||
|} | |} | ||
<br> | |||
{| cellspacing="0" cellpadding=" | ==== transport._TSEvents ==== | ||
This is an outgoing connection point interface that is optionally implemented by clients that wish to be notified of connection related events. | |||
{| cellspacing="0" cellpadding="10" width="100%" border="1" | |||
|- | |- | ||
| width="190" bgcolor="#66ff99" | '''Member'''<br> | |||
| width="100" bgcolor="#66ff99" | '''Type'''<br> | |||
| bgcolor="#66ff99" | '''Description'''<br> | |||
|- | |- | ||
| | | HRESULT '''OnConnect (void)''' | ||
| | | Method | ||
| Event method fired when the transport connection state changes from disconnected to connected. | |||
|- | |- | ||
| | | HRESULT '''OnDisconnect (void)''' | ||
| Method | |||
| Event method fired when the transport connection state changes from connected to disconnected. | |||
|- | |- | ||
| | | HRESULT '''OnEvent ('''<br> TSEventType type,<br> TSEventLevel level,<br> String message<br>''')''' | ||
| Method | |||
| Event method fired when there is a reportable event in the transport communication. | |||
|} | |} | ||
<br> | |||
==== transport.Connection ==== | |||
This is the root object for all connection-related functionality. | |||
{| cellspacing="0" cellpadding="10" width="100%" border="1" | |||
|- | |- | ||
| | | width="190" bgcolor="#66ff99" | '''Member'''<br> | ||
| width="100" bgcolor="#66ff99" | '''Type'''<br> | |||
| bgcolor="#66ff99" | '''Description'''<br> | |||
|- | |- | ||
| | | [[Transport Server Component#transport.Connection.Transports.Item|ActiveTransport]] | ||
| Property,<br>Object | |||
| Contains the current active transport object or null if none is active. | |||
|- | |- | ||
| | | boolean '''Connect ('''<br> int timeout [optional],<br> boolean* stat<br>''')''' | ||
| Method | | Method | ||
| Attempts to create a runtime connection to a target using the active transport. The timeout value (in milliseconds) is passed to the runtime connection request and it fails if timeout is exceeded. Default timeout is 5 seconds (5000). Returns true if connection succeeded, false if either the transport or runtime connection failed. | | Attempts to create a runtime connection to a target using the active transport. The timeout value (in milliseconds) is passed to the runtime connection request and it fails if timeout is exceeded. Default timeout is 5 seconds (5000). Returns true if connection succeeded, false if either the transport or runtime connection failed. | ||
|- | |- | ||
| | | boolean '''ConnectAsync ('''<br> boolean monitor[optional],<br> int transportTimeout[optional],<br> int runtimeTimeout,<br> boolean* stat<br>''')''' | ||
| Method | | Method | ||
| Makes an asynchronous connection request. A background thread is started to attempt to establish the connection. If monitor is true, the thread will run continuously and attempt to reconnect whenever the connection is lost. If monitor is false (the default) the background thread will exit once a connection is initially established. | | Makes an asynchronous connection request. A background thread is started to attempt to establish the connection. If monitor is true, the thread will run continuously and attempt to reconnect whenever the connection is lost. If monitor is false (the default) the background thread will exit once a connection is initially established. | ||
|- | |- | ||
| [[Transport Server Component#transport.Connection.Database|Database]] | | [[Transport Server Component#transport.Connection.Database|Database]] | ||
| Object | | Property,<br>Object | ||
| Database settings | | Database settings. | ||
|- | |- | ||
| | | boolean '''Disconnect ('''<br> boolean* stat <br>''')''' | ||
| Method | | Method | ||
| Attempts to disconnect the runtime and the transport from the target. Returns true if successfully disconnected. | | Attempts to disconnect the runtime and the transport from the target. Returns true if successfully disconnected. | ||
|- | |- | ||
| | | boolean '''DisconnectAsync ('''<br> boolean* stat<br>''')''' | ||
| Method | | Method | ||
| Initiates the request to disconnect from the target, but does not wait fo an acknowledgement of the disconnect request from runtime. Returns true if disconnect request initiated. | | Initiates the request to disconnect from the target, but does not wait fo an acknowledgement of the disconnect request from runtime. Returns true if disconnect request initiated. | ||
|- | |- | ||
| | | IBlockDataDump | ||
| Property,<br>boolean | |||
| Property, | |||
| Turns IBlock dumps on or off. Default is off. If enabled, all IBlocks that are sent and received will be dumped to the STRIDE application log and to a predefined tracepoint. | | Turns IBlock dumps on or off. Default is off. If enabled, all IBlocks that are sent and received will be dumped to the STRIDE application log and to a predefined tracepoint. | ||
|- | |- | ||
| IsConnected | | IsConnected | ||
| Property,<br>'''Read-only''',<br>boolean | |||
| Contains true if transport server is connected. | |||
| Property, | |||
| | |||
|- | |- | ||
| [[Transport Server Component#transport.Connection.Loopback|Loopback]] | | [[Transport Server Component#transport.Connection.Loopback|Loopback]] | ||
| Property, | | Property,<br>Object | ||
| Loopback settings. | | Loopback settings. | ||
|- | |||
| [[Transport Server Component#transport.Connection.Ping|Ping]] | |||
| Property,<br>Object | |||
| Ping settings. | |||
|- | |- | ||
| [[Transport Server Component#transport.Connection.Statistics|Statistics]] | | [[Transport Server Component#transport.Connection.Statistics|Statistics]] | ||
| Object | | Property,<br>Object | ||
| Statistics settings | | Statistics settings. | ||
|- | |- | ||
| TargetRuntimeVersion | | TargetRuntimeVersion | ||
| Property,<br>String | |||
| Property, | |||
| Returns the runtime version string. | | Returns the runtime version string. | ||
|- | |- | ||
| | | TransportDataDump | ||
| | | Property,<br>boolean | ||
| | | Turns raw data dumps on or off. Default is off. If enabled, all SLAP messages that are sent and received by the transport will be dumped to the STRIDE application log and to a predefined tracepoint. | ||
|- | |- | ||
| [[Transport Server Component#transport. | | [[Transport Server Component#transport.Connection.Transports|Transports]] | ||
| Collection | | Collection | ||
| Collection of transports | | Collection of transports. | ||
|- | |- | ||
| TransportsLocation | | TransportsLocation | ||
| Property,<br>String | |||
| The current directory for transport DLLs. Changing this value will immediately change the values in the Transports collection and will cause the current connection (if any) to be closed. | |||
| Property, | |||
| | |||
|} | |} | ||
<br> | |||
=== transport.Connection.Database === | ===== transport.Connection.Database ===== | ||
This is the interface for database settings. | This is the interface for database settings. | ||
{| | {| cellspacing="0" cellpadding="10" width="100%" border="1" | ||
|- | |- | ||
| width="150" bgcolor="#66ff99" | '''Member'''<br> | |||
| width="100" bgcolor="#66ff99" | '''Type'''<br> | |||
| bgcolor="#66ff99" | '''Description'''<br> | |||
|- | |- | ||
| IsLoaded | | IsLoaded | ||
| | | Property,<br>'''Read-only''',<br>boolean | ||
| Contains true if the database is loaded. | |||
|- | |- | ||
| HRESULT '''Load ('''<br> String FullPath,<br> boolean stat<br>''')''' | |||
| HRESULT Load( | |||
| Method | | Method | ||
| | | Loads the database. | ||
|- | |- | ||
| Path | | Path | ||
| | | Property,<br>'''Read-only''',<br>String | ||
| Contains the path to the database. | |||
|- | |- | ||
| HRESULT '''Unload ('''<br> boolean stat<br>''')''' | |||
| Method | |||
| Unloads the database. | |||
| HRESULT | |||
|} | |} | ||
<br> | |||
=== transport.Connection.Loopback === | ===== transport.Connection.Loopback ===== | ||
This is the interface for loopback settings. | This is the interface for loopback settings. | ||
{| | {| cellspacing="0" cellpadding="10" width="100%" border="1" | ||
|- | |- | ||
| width="150" bgcolor="#66ff99" | '''Member'''<br> | |||
| width="100" bgcolor="#66ff99" | '''Type'''<br> | |||
| bgcolor="#66ff99" | '''Description'''<br> | |||
| | |||
| ''' | |||
|- | |- | ||
| DataErrors | | DataErrors | ||
| Property,<br>'''Read-only''',<br>unsigned long | |||
| Contains the number of data errors. | |||
| Property, | |||
| | |||
|- | |- | ||
| Interval | | Interval | ||
| | | Property,<br>unsigned long | ||
| The interval value in milliseconds. | |||
|- | |- | ||
| Property, | | Sent | ||
| Property,<br>'''Read-only''',<br>unsigned long | |||
| Contains the number of loopbacks attempted. | |||
|- | |- | ||
| | | HRESULT '''Start ('''<br> boolean* pVal<br>''')''' | ||
| Method | |||
| Start the loopback processing. | |||
|- | |- | ||
| ''' | | HRESULT '''Stop ('''<br> boolean* pVal<br>''')''' | ||
| | | Method | ||
| Stops the loopback processing. | |||
| | |||
|- | |- | ||
| Timeout | | Timeout | ||
| | | Property,<br>unsigned long | ||
| The timeout value in milliseconds. | |||
|- | |- | ||
| Property, | | TimeoutErrors | ||
| Property,<br>'''Read-only''',<br>unsigned long | |||
| Contains the number of timeout errors. | |||
|} | |} | ||
<br> | |||
=== transport.Connection.Ping === | ===== transport.Connection.Ping ===== | ||
This is the interface for ping settings. All ping settings are automatically persisted in the registry and restored when the transport server is instantiated. | This is the interface for ping settings. All ping settings are automatically persisted in the registry and restored when the transport server is instantiated. | ||
{| | {| cellspacing="0" cellpadding="10" width="100%" border="1" | ||
|- | |- | ||
| width="150" bgcolor="#66ff99" | '''Member'''<br> | |||
| width="100" bgcolor="#66ff99" | '''Type'''<br> | |||
| bgcolor="#66ff99" | '''Description'''<br> | |||
|- | |- | ||
| Enabled | | Enabled | ||
| Property,<br>boolean | |||
| Runtime switch to turn ping messages on or off. This setting is persisted and restored automatically. | |||
| Property, | |||
| | |||
|- | |- | ||
| Interval | | Interval | ||
| Property,<br>int | |||
| The time interval between ping messages, in milliseconds. | |||
| Property, | |||
| | |||
|- | |- | ||
| RetryCount | | RetryCount | ||
| Property,<br>int | |||
| The number of allowable ping failures. Once this number if exceeded, the connection will be closed automatically. | |||
| Property, | |||
| | |||
|- | |- | ||
| Timeout | | Timeout | ||
| Property,<br>int | |||
| The timeout value for the ping message in milliseconds. If a response is not received within this time, the ping fails. | |||
| Property, | |||
| | |||
|} | |} | ||
<br> | |||
=== transport.Connection.Statistics === | ===== transport.Connection.Statistics ===== | ||
This is the interface for statistic settings. | This is the interface for statistic settings. | ||
{| | {| cellspacing="0" cellpadding="10" width="100%" border="1" | ||
|- | |- | ||
| width="150" bgcolor="#66ff99" | '''Member'''<br> | |||
| width="100" bgcolor="#66ff99" | '''Type'''<br> | |||
| bgcolor="#66ff99" | '''Description'''<br> | |||
|- | |- | ||
| [[Transport Server Component#transport.Connection.Statistics.IBlocks|IBlocks]] | | [[Transport Server Component#transport.Connection.Statistics.IBlocks|IBlocks]] | ||
| Collection | | Collection | ||
| | | Collection of IBlock statistics. | ||
|- | |- | ||
| [[Transport Server Component#transport.Connection.Statistics.SequenceErrors|SequenceErrors]] | | [[Transport Server Component#transport.Connection.Statistics.SequenceErrors|SequenceErrors]] | ||
| Collection | | Collection | ||
| | | Collection of Sequence Errors statistics. | ||
|- | |- | ||
| [[Transport Server Component#transport.Connection.Statistics.TargetResources|TargetResources]] | | [[Transport Server Component#transport.Connection.Statistics.TargetResources|TargetResources]] | ||
| Collection | | Collection | ||
| | | Collection of Target Resource statistics. | ||
|} | |} | ||
=== transport.Connection.Statistics.IBlocks === | <br> | ||
====== transport.Connection.Statistics.IBlocks ====== | |||
This is the interface for IBlock settings. | This is the interface for IBlock settings. | ||
{| | {| cellspacing="0" cellpadding="10" width="100%" border="1" | ||
|- | |- | ||
| width="150" bgcolor="#66ff99" | '''Member'''<br> | |||
| width="100" bgcolor="#66ff99" | '''Type'''<br> | |||
| bgcolor="#66ff99" | '''Description'''<br> | |||
|- | |- | ||
| Sent | | Sent | ||
| Property,<br>'''Read-only''',<br>unsigned long | |||
| The number of IBlocks sent. | |||
| Property, | |||
| | |||
|- | |- | ||
| Received | | Received | ||
| | | Property,<br>'''Read-only''',<br>unsigned long | ||
| The number of IBlocks received. | |||
|- | |- | ||
| | | HRESULT '''Reset (void)''' | ||
| | | Method | ||
| | | Resets the counts to zero. | ||
|} | |} | ||
<br> | |||
=== transport.Connection.Statistics.SequenceErrors === | ====== transport.Connection.Statistics.SequenceErrors ====== | ||
This is the interface for sequence error settings. | This is the interface for sequence error settings. | ||
{| | {| cellspacing="0" cellpadding="10" width="100%" border="1" | ||
|- | |- | ||
| width="150" bgcolor="#66ff99" | '''Member'''<br> | |||
| width="100" bgcolor="#66ff99" | '''Type'''<br> | |||
| bgcolor="#66ff99" | '''Description'''<br> | |||
|- | |- | ||
| Host | | Host | ||
| | | Property,<br>'''Read-only''',<br>unsigned long | ||
| Number of Host errors. | |||
|- | |- | ||
| | | HRESULT '''Reset (void)''' | ||
| | | Method | ||
| | | Resets the host/target sequence error counts. | ||
|- | |- | ||
| Target | | Target | ||
| | | Property,<br>'''Read-only''',<br>unsigned long | ||
| Number of Target errors. | |||
|- | |- | ||
| | | HRESULT '''Update (void)''' | ||
| | | Method | ||
| | | Updates the host/target error counts. | ||
|} | |} | ||
<br> | |||
=== transport.Connection.Statistics.TargetResources === | ====== transport.Connection.Statistics.TargetResources ====== | ||
This is the interface for the target resource settings | This is the interface for the target resource settings | ||
{| | {| cellspacing="0" cellpadding="10" width="100%" border="1" | ||
|- | |- | ||
| width="150" bgcolor="#66ff99" | '''Member'''<br> | |||
| width="100" bgcolor="#66ff99" | '''Type'''<br> | |||
| bgcolor="#66ff99" | '''Description'''<br> | |||
|- | |- | ||
| EmbeddedPointers | | EmbeddedPointers | ||
| | | Property,<br>'''Read-only''',<br>unsigned long | ||
| Contains the number of embedded pointers. | |||
|- | |- | ||
| Property, | | MessageQueue | ||
| Property,<br>'''Read-only''',<br>unsigned long | |||
| Contains the number of message queues. | |||
|- | |- | ||
| | | HRESULT '''Reset (void)''' | ||
| | | Method | ||
| Resets the counts. | |||
| | |||
|- | |- | ||
| STIDs | | STIDs | ||
| | | Property,<br>'''Read-only''',<br>unsigned long | ||
| Contains the number of STIDs. | |||
|- | |- | ||
| Property, | | Subscribers | ||
| Property,<br>'''Read-only''',<br>unsigned long | |||
| Contains the number of subscribers. | |||
| | |||
|- | |- | ||
| SUIDs | | SUIDs | ||
| | | Property,<br>'''Read-only''',<br>unsigned long | ||
| Contains the number of SUIDs. | |||
|- | |- | ||
| Property, | | SUIDFilters | ||
| Property,<br>'''Read-only''',<br>unsigned long | |||
| Contains the number of SUID filters. | |||
| | |||
|- | |- | ||
| SUIDOverrides | | SUIDOverrides | ||
| | | Property,<br>'''Read-only''',<br>unsigned long | ||
| Contains the number of SUID overrides. | |||
|- | |- | ||
| | | HRESULT '''Update (void)''' | ||
| | | Method | ||
| | | Updates the counts to their current value. | ||
|} | |} | ||
<br> | |||
===== transport.Connection.Transports ===== | |||
=== transport.Connection.Transports === | |||
This is the collection of currently available transports. | This is the collection of currently available transports. | ||
{| | {| cellspacing="0" cellpadding="10" width="100%" border="1" | ||
|- | |- | ||
| | | width="150" bgcolor="#66ff99" | '''Member'''<br> | ||
| width="100" bgcolor="#66ff99" | '''Type'''<br> | |||
| bgcolor="#66ff99" | '''Description'''<br> | |||
|- | |- | ||
| | | int '''Count (void)''' | ||
| Property,<br>'''Read-only''',<br>int | |||
| '''Read-only''' | |||
| Gives the number of transport items in the collection. | | Gives the number of transport items in the collection. | ||
|- | |- | ||
| [[Transport Server Component#transport.Connection.Transports.Item|Item( | | [[Transport Server Component#transport.Connection.Transports.Item|Transport]] '''Item ('''<br> int Index<br>''')''' | ||
| Method | | Method | ||
| Returns the specified transport item. Index can be a zero-based integer value or a string representing the name of the transport. Each transport advertises a unique name via its API and that’s what we use as the string keys. As per our usual policy, out-of-range integer indices will generate exceptions and out-of-range string indices will return null. | | Returns the specified transport item. Index can be a zero-based integer value or a string representing the name of the transport. Each transport advertises a unique name via its API and that’s what we use as the string keys. As per our usual policy, out-of-range integer indices will generate exceptions and out-of-range string indices will return null. | ||
|} | |} | ||
=== transport.Connection.Transports.Item === | <br> | ||
====== transport.Connection.Transports.Item ====== | |||
This is the interface associated with each transport object. | This is the interface associated with each transport object. | ||
{| | {| cellspacing="0" cellpadding="10" width="100%" border="1" | ||
|- | |- | ||
| width="150" bgcolor="#66ff99" | '''Member'''<br> | |||
| width="100" bgcolor="#66ff99" | '''Type'''<br> | |||
| bgcolor="#66ff99" | '''Description'''<br> | |||
|- | |- | ||
| Active | | Active | ||
| Property,<br>boolean | |||
| The active status of the transport. Only one transport can be active at any given time, so setting this to true for a transport that is not already active will cause the current active transport to be disconnected. Setting this property to true when the item is already active is a no-op. | |||
| Property, | |||
| | |||
|- | |- | ||
| File | | File | ||
| Property,<br>'''Read-only''',<br>String | |||
| The full file path and name for the corresponding transport DLL. | |||
| Property, | |||
| | |||
|- | |- | ||
| Name | | Name | ||
| Property,<br>'''Read-only''',<br>String | |||
| The name of the transport item. | |||
| Property, | |||
| | |||
|- | |- | ||
| [[Transport Server Component#transport.Connection.Transports.Properties|Properties]] | | [[Transport Server Component#transport.Connection.Transports.Properties|Properties]] | ||
| Collection | | Collection | ||
| Collection of properties | | Collection of transport properties for this transport. | ||
|} | |} | ||
=== transport.Connection.Transports.Properties === | <br> | ||
===== transport.Connection.Transports.Properties ===== | |||
This is the collection of properties for a given transport. | This is the collection of properties for a given transport. | ||
{| | {| cellspacing="0" cellpadding="10" width="100%" border="1" | ||
|- | |- | ||
| | | width="150" bgcolor="#66ff99" | '''Member'''<br> | ||
| width="100" bgcolor="#66ff99" | '''Type'''<br> | |||
| bgcolor="#66ff99" | '''Description'''<br> | |||
|- | |- | ||
| | | int '''Count (void)''' | ||
| Property,<br>'''Read-only''',<br>int | |||
| '''Read-only''' | |||
| Gives the number of properties in the collection. | | Gives the number of properties in the collection. | ||
|- | |- | ||
| [[Transport Server Component#transport.Connection.Transports.Properties.Item|Item( | | [[Transport Server Component#transport.Connection.Transports.Properties.Item|TransportProperty]] '''Item ('''<br> int Index<br>''')''' | ||
| Method | | Method | ||
| Returns the specified property item. Index can be a zero-based integer value or a string representing the name of the property. As per our usual policy, out-of-range integer indices will generate exceptions and out-of-range string indices will return null. | | Returns the specified property item. Index can be a zero-based integer value or a string representing the name of the property. As per our usual policy, out-of-range integer indices will generate exceptions and out-of-range string indices will return null. | ||
|} | |} | ||
=== transport.Connection.Transports.Properties.Item === | <br> | ||
====== transport.Connection.Transports.Properties.Item ====== | |||
This is the interface for a specific transport property. | This is the interface for a specific transport property. | ||
{| | {| cellspacing="0" cellpadding="10" width="100%" border="1" | ||
|- | |- | ||
| width="150" bgcolor="#66ff99" | '''Member'''<br> | |||
| width="100" bgcolor="#66ff99" | '''Type'''<br> | |||
| bgcolor="#66ff99" | '''Description'''<br> | |||
|- | |- | ||
| AllowableValues | | AllowableValues | ||
| Property,<br>'''Read-only''',<br>String | |||
| A pipe-delimited string where each delimited value represents an allowable value for the property. Clients might use this to restrict or validate input. | |||
| Property, | |||
| | |||
|- | |- | ||
| Name | | Name | ||
| Property,<br>'''Read-only''',<br>String | |||
| The name of the property item. | |||
| Property, | |||
| | |||
|- | |- | ||
| Value | | Value | ||
| Property,<br>String | |||
| The value of the property. When set, the validation method of the transport will be called. Any failures in validation will be returned as exceptions here. | |||
| Property, | |||
| | |||
|} | |} | ||
[[Category:Studio]] | |||
[[Category:Studio:Reference]] |
Latest revision as of 15:56, 21 August 2009
The Host Transport Services
The Host Transport Services define an interface that enables the STRIDE Runtime on your host to send data to and receive data from the target. The STRIDE Transport Server connects the Transport DLL to the STRIDE Runtime running on the host platform, thus providing indirect access to the target from STRIDE Studio, AutoScript, and other STRIDE applications. Several common transports are already supported within the STRIDE Transport Server, including serial and TCP/IP.
The Host Transport Services are defined in "transport.h" and each Transport DLL must implement the interfaces derived from the IStrideTransport class.
Refer to the STRIDE Host Runtime Transport Specification document for a more detailed description of the Host Transport Services.
The Transport Server
The Transport Server is an out-of-process COM server that fields client requests to a target and provides connection management, loopback and diagnostic features. The client communicates to the Transport Server. The Transport Server communicates to the target runtime of a target.
To access the transport server, a client first registers with to it using a process id (PID). This is done transparently for script clients using the script wrapper named STRIDE.transport. In JScript getting ahold of the transport server may be done as follows:
var tpserver = new ActiveXObject("STRIDE.transport");
Transport Server API
This section contains all the applicable API to reference transport server functionality.
transport
This is the root-level object. It provides direct access to the top-level transport objects.
Member |
Type |
Description |
HRESULT Init ( long ProcessId, boolean pVal ) |
Method | Method to initialize the transport server. |
HRESULT Terminate ( long ProcessId ) |
Method | Method to terminate the transport server. |
Connection | Property, Read-only, Object |
The Connection object. |
transport._TSEvents
This is an outgoing connection point interface that is optionally implemented by clients that wish to be notified of connection related events.
Member |
Type |
Description |
HRESULT OnConnect (void) | Method | Event method fired when the transport connection state changes from disconnected to connected. |
HRESULT OnDisconnect (void) | Method | Event method fired when the transport connection state changes from connected to disconnected. |
HRESULT OnEvent ( TSEventType type, TSEventLevel level, String message ) |
Method | Event method fired when there is a reportable event in the transport communication. |
transport.Connection
This is the root object for all connection-related functionality.
Member |
Type |
Description |
ActiveTransport | Property, Object |
Contains the current active transport object or null if none is active. |
boolean Connect ( int timeout [optional], boolean* stat ) |
Method | Attempts to create a runtime connection to a target using the active transport. The timeout value (in milliseconds) is passed to the runtime connection request and it fails if timeout is exceeded. Default timeout is 5 seconds (5000). Returns true if connection succeeded, false if either the transport or runtime connection failed. |
boolean ConnectAsync ( boolean monitor[optional], int transportTimeout[optional], int runtimeTimeout, boolean* stat ) |
Method | Makes an asynchronous connection request. A background thread is started to attempt to establish the connection. If monitor is true, the thread will run continuously and attempt to reconnect whenever the connection is lost. If monitor is false (the default) the background thread will exit once a connection is initially established. |
Database | Property, Object |
Database settings. |
boolean Disconnect ( boolean* stat ) |
Method | Attempts to disconnect the runtime and the transport from the target. Returns true if successfully disconnected. |
boolean DisconnectAsync ( boolean* stat ) |
Method | Initiates the request to disconnect from the target, but does not wait fo an acknowledgement of the disconnect request from runtime. Returns true if disconnect request initiated. |
IBlockDataDump | Property, boolean |
Turns IBlock dumps on or off. Default is off. If enabled, all IBlocks that are sent and received will be dumped to the STRIDE application log and to a predefined tracepoint. |
IsConnected | Property, Read-only, boolean |
Contains true if transport server is connected. |
Loopback | Property, Object |
Loopback settings. |
Ping | Property, Object |
Ping settings. |
Statistics | Property, Object |
Statistics settings. |
TargetRuntimeVersion | Property, String |
Returns the runtime version string. |
TransportDataDump | Property, boolean |
Turns raw data dumps on or off. Default is off. If enabled, all SLAP messages that are sent and received by the transport will be dumped to the STRIDE application log and to a predefined tracepoint. |
Transports | Collection | Collection of transports. |
TransportsLocation | Property, String |
The current directory for transport DLLs. Changing this value will immediately change the values in the Transports collection and will cause the current connection (if any) to be closed. |
transport.Connection.Database
This is the interface for database settings.
Member |
Type |
Description |
IsLoaded | Property, Read-only, boolean |
Contains true if the database is loaded. |
HRESULT Load ( String FullPath, boolean stat ) |
Method | Loads the database. |
Path | Property, Read-only, String |
Contains the path to the database. |
HRESULT Unload ( boolean stat ) |
Method | Unloads the database. |
transport.Connection.Loopback
This is the interface for loopback settings.
Member |
Type |
Description |
DataErrors | Property, Read-only, unsigned long |
Contains the number of data errors. |
Interval | Property, unsigned long |
The interval value in milliseconds. |
Sent | Property, Read-only, unsigned long |
Contains the number of loopbacks attempted. |
HRESULT Start ( boolean* pVal ) |
Method | Start the loopback processing. |
HRESULT Stop ( boolean* pVal ) |
Method | Stops the loopback processing. |
Timeout | Property, unsigned long |
The timeout value in milliseconds. |
TimeoutErrors | Property, Read-only, unsigned long |
Contains the number of timeout errors. |
transport.Connection.Ping
This is the interface for ping settings. All ping settings are automatically persisted in the registry and restored when the transport server is instantiated.
Member |
Type |
Description |
Enabled | Property, boolean |
Runtime switch to turn ping messages on or off. This setting is persisted and restored automatically. |
Interval | Property, int |
The time interval between ping messages, in milliseconds. |
RetryCount | Property, int |
The number of allowable ping failures. Once this number if exceeded, the connection will be closed automatically. |
Timeout | Property, int |
The timeout value for the ping message in milliseconds. If a response is not received within this time, the ping fails. |
transport.Connection.Statistics
This is the interface for statistic settings.
Member |
Type |
Description |
IBlocks | Collection | Collection of IBlock statistics. |
SequenceErrors | Collection | Collection of Sequence Errors statistics. |
TargetResources | Collection | Collection of Target Resource statistics. |
transport.Connection.Statistics.IBlocks
This is the interface for IBlock settings.
Member |
Type |
Description |
Sent | Property, Read-only, unsigned long |
The number of IBlocks sent. |
Received | Property, Read-only, unsigned long |
The number of IBlocks received. |
HRESULT Reset (void) | Method | Resets the counts to zero. |
transport.Connection.Statistics.SequenceErrors
This is the interface for sequence error settings.
Member |
Type |
Description |
Host | Property, Read-only, unsigned long |
Number of Host errors. |
HRESULT Reset (void) | Method | Resets the host/target sequence error counts. |
Target | Property, Read-only, unsigned long |
Number of Target errors. |
HRESULT Update (void) | Method | Updates the host/target error counts. |
transport.Connection.Statistics.TargetResources
This is the interface for the target resource settings
Member |
Type |
Description |
EmbeddedPointers | Property, Read-only, unsigned long |
Contains the number of embedded pointers. |
MessageQueue | Property, Read-only, unsigned long |
Contains the number of message queues. |
HRESULT Reset (void) | Method | Resets the counts. |
STIDs | Property, Read-only, unsigned long |
Contains the number of STIDs. |
Subscribers | Property, Read-only, unsigned long |
Contains the number of subscribers. |
SUIDs | Property, Read-only, unsigned long |
Contains the number of SUIDs. |
SUIDFilters | Property, Read-only, unsigned long |
Contains the number of SUID filters. |
SUIDOverrides | Property, Read-only, unsigned long |
Contains the number of SUID overrides. |
HRESULT Update (void) | Method | Updates the counts to their current value. |
transport.Connection.Transports
This is the collection of currently available transports.
Member |
Type |
Description |
int Count (void) | Property, Read-only, int |
Gives the number of transport items in the collection. |
Transport Item ( int Index ) |
Method | Returns the specified transport item. Index can be a zero-based integer value or a string representing the name of the transport. Each transport advertises a unique name via its API and that’s what we use as the string keys. As per our usual policy, out-of-range integer indices will generate exceptions and out-of-range string indices will return null. |
transport.Connection.Transports.Item
This is the interface associated with each transport object.
Member |
Type |
Description |
Active | Property, boolean |
The active status of the transport. Only one transport can be active at any given time, so setting this to true for a transport that is not already active will cause the current active transport to be disconnected. Setting this property to true when the item is already active is a no-op. |
File | Property, Read-only, String |
The full file path and name for the corresponding transport DLL. |
Name | Property, Read-only, String |
The name of the transport item. |
Properties | Collection | Collection of transport properties for this transport. |
transport.Connection.Transports.Properties
This is the collection of properties for a given transport.
Member |
Type |
Description |
int Count (void) | Property, Read-only, int |
Gives the number of properties in the collection. |
TransportProperty Item ( int Index ) |
Method | Returns the specified property item. Index can be a zero-based integer value or a string representing the name of the property. As per our usual policy, out-of-range integer indices will generate exceptions and out-of-range string indices will return null. |
transport.Connection.Transports.Properties.Item
This is the interface for a specific transport property.
Member |
Type |
Description |
AllowableValues | Property, Read-only, String |
A pipe-delimited string where each delimited value represents an allowable value for the property. Clients might use this to restrict or validate input. |
Name | Property, Read-only, String |
The name of the property item. |
Value | Property, String |
The value of the property. When set, the validation method of the transport will be called. Any failures in validation will be returned as exceptions here. |