#include <Roster.h>
The primary Client we envision for the DTPF is a graphical user interface which will provide access to the Roster facilities for end-users. Roster facilities will include: obtaining a list of Nodes that can be loaded, loading a Node, determining the Format Models accepted for input by Nodes or produced as output by Nodes. The Roster also enables communication connections to be established between pairs of nodes.
Clients access the Roster through the RosterClientInterface. This provides a messaging interface to the Roster. The Roster is implemented as a separate heavy weight process (HWP).
Public Member Functions | |
Roster (muscle::String nodeDirectory) | |
The constructor for the Roster is used only by the HWP that implements the Roster. | |
muscle::Message * | GetPluginNodes () |
muscle::Message * | GetRegisteredNodes () |
status_t | LoadPluginNode (muscle::String nodeName) |
Attempts to load an instance of the Node given by NodeName. | |
status_t | UnloadPluginNode (NodeID id) |
If the Node given by the NodeID has been previously loaded, and registered, and that Node is currently in a stopped state, then the roster attempts to unload that Node. | |
status_t | GetParameters (NodeID id, muscle::Message *parameters) |
These methods enable the parameters for a registered Node to be obtained or modified. | |
status_t | SetParameters (NodeID id, muscle::Message parameters) |
status_t | StartNode (NodeID nid) |
Change the state of the node. | |
status_t | StopNode (NodeID nid) |
status_t | GetNodeState (NodeID id, NodeState *state) |
Get the current state of the node. | |
status_t | GetConnectionEndpoints (NodeID id, muscle::Message **connectionEndpoints) |
Enables a Client to determine the ConnectionEndpoints for a registered Node. | |
status_t | ConnectNodes (EndpointID upstreamNode, EndpointID downstreamNode, muscle::Message *formatModel) |
Attempts to connect an upstream Node to a downstream Node in the given format. | |
status_t | DisconnectNodes (EndpointID upstreamNode, EndpointID downstreamNode) |
Attempts to disconnect an upstream Node from a downstream Node. | |
status_t | RegisterNode (muscle::Message *connectionEndpoints, NodeID *nid) |
Attempts to register a Node. | |
status_t | UnregisterNode (NodeID nid) |
Attempts to unregister a node. |
|
The constructor for the Roster is used only by the HWP that implements the Roster.
|
|
Attempts to connect an upstream Node to a downstream Node in the given format.
|
|
Attempts to disconnect an upstream Node from a downstream Node.
|
|
Enables a Client to determine the ConnectionEndpoints for a registered Node. See RegisterNode for the format of the Message. |
|
Get the current state of the node. The State can be: Starting, Started, Stopping, Stopped.
|
|
These methods enable the parameters for a registered Node to be obtained or modified.
|
|
|
|
|
|
Attempts to load an instance of the Node given by NodeName. An instance of the object is created using its constructor. It is a responsiblity of the Node to register itself (e.g., in its constructor; see method RegisterNode on this interface). The nodeName should be one of those returned from a call to GetPluginNodes. It depends on the semantics of the Node whether multiple instances of the specific Node can be loaded at the same time. For example, Nodes that read from hardware devices may be constrained to having only one instance loaded. |
|
Attempts to register a Node. It is assumed that the FormatModel's of the ConnectionEndpoint's for a Node do not change while a node is instantiated. As a part of registering a Node, communications are established with the Node's event looper, so that the Roster can send messages to the event looper for the Node. Part of the Registration procedure thus starts the event looper for a Node.
|
|
|
|
Change the state of the node. To Start a node, it must be in a Stopped state. To Stop a node, it must be in a Started state.
|
|
|
|
If the Node given by the NodeID has been previously loaded, and registered, and that Node is currently in a stopped state, then the roster attempts to unload that Node. This call should not be used for nodes not implemented through dynamic linking. |
|
Attempts to unregister a node.
|