Difference between revisions of "Studio:Transport Server Component"

From STRIDE Wiki
Jump to: navigation, search
m (Text replace - 'Category:Reference' to 'Category:Studio:Reference')
 
Line 466: Line 466:
 
|}
 
|}
 
[[Category:Studio]]
 
[[Category:Studio]]
[[Category:Reference]]
+
[[Category:Studio:Reference]]

Latest revision as of 09: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.

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 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.