stateclient

Name

stateclient -- REST client of manager state machine

Synopsis


package require stateclient

set obj [StateClient objname ?options...?]
$obj configure optname value ...
set state [$obj currentState]
set successors [$obj nextStates]
set actual [$obj transition desired]
$obj kill

$obj destroy

      

DESCRIPTION

The stateclient package provides a snit::type class that serves as a client to the DAQ manager's state machine REST server domain. The client hides package presents a simple to use interface that completely hides the process of service location, request formation and reply decoding.

OPTIONS

The following options can be provided either at construction time or later on via the configure method. Each rest request performs service discovery and connects to the server. Therefore it is possible to dynamically switch the target of a client object by reconfiguring the connection information.

Note that the service name discovered defaults to DAQManager. It can be modified by setting the ::clientutils::SERVICE variable to the desired service name.

-host DNS-name

The DNS host name or IP address of the system on which the manager is running

-user username

The username of the user that started the server.

METHODS

Constructed StateClient objects have the following methods:

configure option value...

Modifies the value of one or more options. The parameters to this method are a sequence of option names followed by new values for that option. See OPTIONS above for a list of the legal options.

currentState

Returns the textual name of the current state.

nextStates

Returns a list of textual state names that can be reached by transitioning from the current state.

transition newstate

Attempts a tranisition to the newstate. The method call blocks until the server has completed its transition. At that time the state of the system is returned. Note that it is possible the state transition will fail and that may result in a return value other than newstate.

kill

Request that the server exit. Note that the server will first attempt to transition into the SHUTDOWN state.