package RTT.corba;
/**
* RTT/corba/CDataFlowInterfaceOperations.java .
* Generated by the IDL-to-Java compiler (portable), version "3.2"
* from DataFlow.idl
* Wednesday, July 11, 2012 5:26:42 PM CEST
*/
/**
* An interface to access the dataflow
* of a CControlTask object. Data ports are exported as
* assignable expressions (Set/Get). Buffer ports are
* exported as buffer channels.
* @ingroup CompIDL
*/
public interface CDataFlowInterfaceOperations
{
/**
* Returns the names of the ports of this component.
*/
String[] getPorts ();
/**
* Returns the names of the ports of this component.
*/
RTT.corba.CPortDescription[] getPortDescriptions ();
/**
* Returns the type of the given port
*/
RTT.corba.CPortType getPortType (String port_name) throws RTT.corba.CNoSuchPortException;
/**
* Returns the data type for the given port
*/
String getDataType (String port_name) throws RTT.corba.CNoSuchPortException;
/**
* Check if the given port is already connected to something
*/
boolean isConnected (String port_name) throws RTT.corba.CNoSuchPortException;
/**
* Disconnects this port from all connections it is part of.
* @see CChannelElement::disconnect() to disconnect a single Channel.
*/
void disconnectPort (String port_name) throws RTT.corba.CNoSuchPortException;
/**
* Use this to write to an input port with
* the given policy.
* Some protocols may adjust the policy, or pass additional information
* into the policy, such as the name of the newly created connection.
*
* The returned channel element will not be functional until
* channelReady() has been called for it
*/
RTT.corba.CChannelElement buildChannelOutput (String input_port, RTT.corba.CConnPolicyHolder policy) throws RTT.corba.CNoCorbaTransport, RTT.corba.CNoSuchPortException;
/**
* Use this to read from an output port with
* the given policy.
* Some protocols may adjust the policy, or pass additional information
* into the policy, such as the name of the newly created connection.
*/
RTT.corba.CChannelElement buildChannelInput (String output_port, RTT.corba.CConnPolicyHolder policy) throws RTT.corba.CNoCorbaTransport, RTT.corba.CNoSuchPortException;
/**
* Connect the given named port to the given remote port.
* Use this method to connect two Orocos data flow ports.
*
* The local port needs to be the output, while the remote port is the
* input. In case you only want to write a port without using this function,
* use buildChannelOutput. For only reading a port, use buildChannelInput.
*
* This method combines both buildChannelOutput() and buildChannelInput() and is
* generally better in setting up and checking a data flow connection between
* two ports than the separate methods.
*
* This method will call the \a remote_ports interface back to orchestrate
* the connection building.
*
* @see removeConnection() to remove this connection again.
*/
boolean createConnection (String local_port, RTT.corba.CDataFlowInterface remote_ports, String remote_port, RTT.corba.CConnPolicyHolder policy) throws RTT.corba.CNoSuchPortException;
/**
* Removes the specified connection created with createConnection.
*/
boolean removeConnection (String local_port, RTT.corba.CDataFlowInterface remote_ports, String remote_port) throws RTT.corba.CNoSuchPortException;
/**
* Create an out-of-band data stream with a given policy.
* You may specify a name_id in the policy object, or if left empty,
* a name will be chosen for you.
*/
boolean createStream (String local_port, RTT.corba.CConnPolicyHolder policy) throws RTT.corba.CNoSuchPortException;
/**
* Removes a stream added with createStream.
* @param local_port The port to remove the stream from.
* @param stream_name The name_id returned in the CConnPolicy object
* after the call to createStream.
*/
void removeStream (String local_port, String stream_name) throws RTT.corba.CNoSuchPortException;
/**
* Checks if the connection channel elements are ready for a given
* input port.
* This is typically called by the createConnection setup logic to see
* if the input side agrees with the connection and can use it.
* For example, the input port can use this opportunity to check the
*
* @throw CNoSuchPortException if input_port is not an input port
* or not present in this interface.
* @return false if the connection could not be used.
*/
boolean channelReady (String input_port, RTT.corba.CChannelElement channel) throws RTT.corba.CNoSuchPortException;
} // interface CDataFlowInterfaceOperations