summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/AVStreams.idl
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/AVStreams.idl')
-rw-r--r--TAO/orbsvcs/orbsvcs/AVStreams.idl502
1 files changed, 0 insertions, 502 deletions
diff --git a/TAO/orbsvcs/orbsvcs/AVStreams.idl b/TAO/orbsvcs/orbsvcs/AVStreams.idl
deleted file mode 100644
index 6b13d7674bf..00000000000
--- a/TAO/orbsvcs/orbsvcs/AVStreams.idl
+++ /dev/null
@@ -1,502 +0,0 @@
-/* -*- C++ -*- */
-
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// cos
-//
-// = FILENAME
-// AVStreams.idl
-//
-// = AUTHOR
-// OMG
-//
-//
-// ============================================================================
-
-#include "CosPropertyService.idl"
-
-module AVStreams
-// = DESCRIPTION
-// IDL for Control and Management of Audio/Video Streams
-// Revised Submission
-{
- struct QoS
- // This structure represents QoS for a given type.
- // E.g. {"video_qos", <"video_framerate", 26>,
- // <"video_depth", 9>}
- {
- string QoSType;
- // Name of the Qos type, e.g. "video_qos"
- string QoSParams;
- // @@
- // CosPropertyService::Properties QoSParams;
- // Sequence of name value pairs, see e.g. above.
- };
-
- typedef sequence<QoS> streamQoS;
- // The QoS of a stream is a sequence of QoS structs (defined above)
-
- typedef sequence<string> flowSpec;
- // flowSpec is used to keep transport protocol information
- // Each string is one endpoint.
-
- typedef sequence<string> protocolSpec;
- // List of protocols supported
- // protocol names registered by OMG.
- // e.g., TCP, UDP, AAL5, IPX, RTP
-
- typedef sequence<octet> encryption_key;
- // Used as a key for public-key encryption
-
- struct SFPStatus
- // This structure is defined for SFP1.0
- // Subsequent versions of the protocol may
- // specify new structures
- {
- // = TITLE
- // This structure is defined for SFP1.0 Subsequent versions of
- // the protocol may specify new structures
- boolean isFormatted;
- boolean isSpecialFormat;
- boolean seqNums;
- boolean timestamps;
- boolean sourceIndicators;
- };
-
- enum flowState {stopped, started, dead};
- // represents the state of a flow
-
- enum dirType {dir_in, dir_out};
- // the direction of a flow
-
- struct flowStatus
- // Used to store the status of a flow
- {
- string flowName;
- dirType directionality;
- flowState status;
- SFPStatus theFormat;
- QoS theQoS;
- };
-
- // @@
- // typedef CosPropertyService::Property streamEvent;
- typedef string streamEvent;
- // Used to convey events, in Basic_StreamCtrl::push_event
-
- exception notSupported {};
- // Used to indicate that an operation is not supported
-
- exception PropertyException {};
- // Property exception: raised by VDev::configure ()
-
- exception FPError { string flow_name; };
- // An flow protocol related error
-
- exception streamOpFailed
- // Raised by operations on streams
- {
- string reason;
- };
-
- exception streamOpDenied
- // Raised by operations on streams
- {
- string reason;
- };
-
- exception noSuchFlow {};
- // Used to indicate that an invalid flow name was used for the operation
-
- exception QoSRequestFailed
- // Used to indicate failure in changing QoS
- {
- string reason;
- };
-
- // @@
- // interface Basic_StreamCtrl : CosPropertyService::PropertySet {
- interface Basic_StreamCtrl
- // = DESCRIPTION
- // Base class for StreamCtrl, implements basic stream start
- // and stop functionality
- {
- // Empty flowSpec => apply operation to all flows
- void stop (in flowSpec the_spec) raises (noSuchFlow);
- // Stop the transfer of data of the stream
- // Empty the_spec means apply operation to all flows
-
- void start (in flowSpec the_spec) raises (noSuchFlow);
- // Start the transfer of data in the stream.
- // Empty the_spec means apply operation to all flows
-
- void destroy (in flowSpec the_spec) raises (noSuchFlow);
- // Tears down the stream. This will close the connection, and delete
- // the streamendpoint and vdev associated with this stream
- // Empty the_spec means apply operation to all flows
-
- boolean modify_QoS (inout streamQoS new_qos,
- in flowSpec the_spec)
- raises (noSuchFlow,
- QoSRequestFailed);
- // Changes the QoS associated with the stream
- // Empty the_spec means apply operation to all flows
-
- oneway void push_event (in streamEvent the_event);
- // Called by StreamEndPoint when something goes wrong
- // with a flow
-
- void set_FPStatus (in flowSpec the_spec,
- in string fp_name,
- in any fp_settings)
- raises (noSuchFlow,
- FPError);
- // Used to control the flow protocol parameters.
-
-
- Object get_flow_connection (in string flow_name)
- raises (noSuchFlow,
- notSupported);
- // Not implemented in the light profile, will raise the notsupported
- // exception
-
-
- void set_flow_connection (in string flow_name,
- in Object flow_connection)
- raises (noSuchFlow,
- notSupported);
- };
- // Not implemented in the light profile, will raise the notsupported
- // exception
-
- interface Negotiator
- // = DESCRIPTION
- // This class is used to negotiate QoS between two stream endpoints
- {
- boolean negotiate (in Negotiator remote_negotiator,
- in streamQoS qos_spec);
- // initiates the process of negotiating the qos_spec
- };
-
- // forward declarations
- interface VDev;
- interface MMDevice;
- interface StreamEndPoint;
- interface StreamEndPoint_A;
- interface StreamEndPoint_B;
-
- interface StreamCtrl : Basic_StreamCtrl
- // = DESCRIPTION
- // Implementation the A/V StreamCtrl class. this class
- // is used to control the stream. It should be subclassed
- // by applications that want to provide more control features.
- {
-
- boolean bind_devs (in MMDevice a_party, in MMDevice b_party,
- inout streamQoS the_qos,
- in flowSpec the_flows)
- raises (streamOpFailed,
- noSuchFlow,
- QoSRequestFailed);
- // Establish a stream between a_party and b_party,
- // with qos the_qos, and for the flows in the_flows
- // if the_flows is empty, bind all the flows
- // Causes a connection to be established between the StreamEndpoints.
- // Returns success/failure
-
- boolean bind (in StreamEndPoint_A a_party,
- in StreamEndPoint_B b_party,
- inout streamQoS the_qos,
- in flowSpec the_flows)
- raises (streamOpFailed,
- noSuchFlow,
- QoSRequestFailed);
- // Establish a connection between two streamendpoints. This can
- // be used if the streamendpoints have been created independent of
- // a MMDevice
-
- void unbind_party (in StreamEndPoint the_ep,
- in flowSpec the_spec)
- raises (streamOpFailed, noSuchFlow);
- // Unbind the_ep from the stream. Empty the_spec means apply to all flows.
-
- void unbind ()
- raises (streamOpFailed);
- // unbind the stream. Same effect as Basic_StreamCtrl::destroy ()
- };
-
- // @@
- // interface MCastConfigIf : CosPropertyService::PropertySet{
- interface MCastConfigIf
- // multicasting operations are not supported yet
- {
- boolean set_peer (in Object peer,
- inout streamQoS the_qos,
- in flowSpec the_spec)
- raises (QoSRequestFailed,
- streamOpFailed);
- // multicasting operations are not supported yet
-
- void configure (in CosPropertyService::Property a_configuration);
- // multicasting operations are not supported yet
-
- void set_initial_configuration (in CosPropertyService::Properties initial);
- // multicasting operations are not supported yet
-
- // Uses <format_name> standardised by OMG and IETF
- void set_format (in string flowName,
- in string format_name)
- raises (notSupported);
- // multicasting operations are not supported yet
-
- // Note, some of these device params are standardised by OMG
- void set_dev_params (in string flowName,
- in CosPropertyService::Properties new_params)
- raises (CosPropertyService::PropertyException,
- streamOpFailed);
- // multicasting operations are not supported yet
-
- };
-
- // @@
- // interface StreamEndPoint : CosPropertyService::PropertySet{
- interface StreamEndPoint
- // = DESCRIPTION
- // The Stream EndPoint. Used to implement one endpoint of a stream
- // that implements the transport layer.
- {
- void stop (in flowSpec the_spec)
- raises (noSuchFlow);
- // Stop the stream. Empty the_spec means, for all the flows
-
- void start (in flowSpec the_spec)
- raises (noSuchFlow);
- // Start the stream, Empty the_spec means, for all the flows
-
- void destroy (in flowSpec the_spec)
- raises (noSuchFlow);
- // Destroy the stream, Empty the_spec means, for all the flows
-
- boolean connect (in StreamEndPoint responder,
- inout streamQoS qos_spec,
- in flowSpec the_spec)
- raises (noSuchFlow,
- QoSRequestFailed,
- streamOpFailed);
- // Called by StreamCtrl. responder is the peer to connect to
-
- boolean request_connection (in StreamEndPoint initiator,
- in boolean is_mcast,
- inout streamQoS qos,
- inout flowSpec the_spec)
- raises (streamOpDenied, noSuchFlow,
- QoSRequestFailed, FPError);
- // Called by the peer StreamEndPoint. The flow_spec indicates the
- // flows (which contain transport addresses etc.)
-
- boolean modify_QoS (inout streamQoS new_qos,
- in flowSpec the_flows)
- raises (noSuchFlow,
- QoSRequestFailed);
- // Change the transport qos on a stream
-
- boolean set_protocol_restriction (in protocolSpec the_pspec);
- // Used to restrict the set of protocols
-
- void disconnect(in flowSpec the_spec)
- raises (noSuchFlow,
- streamOpFailed);
- // disconnect the flows
-
- void set_FPStatus (in flowSpec the_spec,
- in string fp_name,
- in any fp_settings)
- raises (noSuchFlow,
- FPError);
- // Used to control the SFP parameters
-
- Object get_fep (in string flow_name)
- raises (notSupported,
- noSuchFlow);
- // Not implemented in the light profile, throws notsupported
-
- string add_fep (in Object the_fep)
- // Can fail for reasons {duplicateFepName, duplicateRef}
- raises (notSupported,
- streamOpFailed);
- // Not implemented in the light profile, throws notsupported
-
- void remove_fep (in string fep_name)
- raises (notSupported,
- streamOpFailed);
- // Not implemented in the light profile, throws notsupported
-
- void set_negotiator (in Negotiator new_negotiator);
- // Used to "attach" a negotiator to the endpoint
-
- void set_key (in string flow_name,
- in encryption_key the_key);
- // Used for public key encryption.
-
- void set_source_id (in long source_id);
- // Used to set a unique id for packets sent by this streamendpoint
- };
-
- interface StreamEndPoint_A : StreamEndPoint
- // = DESCRIPTION
- // The "A" side of a streamendpoint
- {
-
- boolean multiconnect (inout streamQoS the_qos,
- inout flowSpec the_spec)
- raises (noSuchFlow, QoSRequestFailed, streamOpFailed);
- // Used for ATM-style multicast
-
- boolean connect_leaf (in StreamEndPoint_B the_ep,
- inout streamQoS the_qos,
- in flowSpec the_flows)
- raises (streamOpFailed, noSuchFlow,
- QoSRequestFailed, notSupported);
- // Used for ATM-style multicast
-
- void disconnect_leaf (in StreamEndPoint_B the_ep,
- in flowSpec theSpec)
- raises(streamOpFailed, noSuchFlow);
- // Used for ATM-style multicast
- };
-
- interface StreamEndPoint_B : StreamEndPoint
- {
-
- boolean multiconnect (inout streamQoS the_qos,
- inout flowSpec the_spec)
- raises (streamOpFailed, noSuchFlow,
- QoSRequestFailed, FPError);
- // Used for ATM-style multicast
- };
-
- // @@
- // interface VDev : CosPropertyService::PropertySet{
- interface VDev
- // = DESCRIPTION
- // Implements the VDev interface. One of these is created per connection,
- // and represents device-specific parameters
- {
- boolean set_peer (in StreamCtrl the_ctrl,
- in VDev the_peer_dev,
- inout streamQoS the_qos,
- in flowSpec the_spec)
- raises (noSuchFlow,
- QoSRequestFailed,
- streamOpFailed);
- // Called to tell the vdev who the streamctrl, peer vdev is
-
- boolean set_Mcast_peer (in StreamCtrl the_ctrl,
- in MCastConfigIf a_mcastconfigif,
- inout streamQoS the_qos,
- in flowSpec the_spec)
- raises (noSuchFlow,
- QoSRequestFailed,
- streamOpFailed);
- // Used to set the streamctrl and multicast device
-
- void configure (in CosPropertyService::Property the_config_mesg)
- raises (PropertyException,
- streamOpFailed);
- // Called by the peer VDev to configure the device (catch all)
-
- // Uses <formatName> standardised by OMG and IETF
- void set_format (in string flowName,
- in string format_name)
- raises (notSupported);
- // Used to set a format on a flowname
-
- // Note, some of these device params are standardised by OMG
- void set_dev_params (in string flowName,
- in CosPropertyService::Properties new_params)
- raises (PropertyException,
- streamOpFailed);
- // Used to set device parameters
-
- boolean modify_QoS (inout streamQoS the_qos,
- in flowSpec the_spec)
- raises (noSuchFlow,
- QoSRequestFailed);
- // Called to change QoS of the device
-
- };
-
- interface MMDevice : CosPropertyService::PropertySet
- // = DESCRIPTION
- // Implements a factory to create Endpoints and VDevs
- {
- StreamEndPoint_A create_A (in StreamCtrl the_requester,
- out VDev the_vdev,
- inout streamQoS the_qos,
- out boolean met_qos,
- inout string named_vdev,
- in flowSpec the_spec)
- raises (streamOpFailed,
- streamOpDenied,
- notSupported,
- QoSRequestFailed,
- noSuchFlow);
- // Called by StreamCtrl to create a "A" type streamendpoint and vdev
-
- StreamEndPoint_B create_B(in StreamCtrl the_requester,
- out VDev the_vdev,
- inout streamQoS the_qos,
- out boolean met_qos,
- inout string named_vdev,
- in flowSpec the_spec)
- raises (streamOpFailed,
- streamOpDenied,
- notSupported,
- QoSRequestFailed,
- noSuchFlow);
- // Called by StreamCtrl to create a "B" type streamendpoint and vdev
-
- StreamCtrl bind (in MMDevice peer_device,
- inout streamQoS the_qos,
- out boolean is_met,
- in flowSpec the_spec)
- raises (streamOpFailed,
- noSuchFlow,
- QoSRequestFailed);
- // Can be used to request the MMDevice to create a new StreamCtrl,
- // and call bind_devs on it
-
- StreamCtrl bind_mcast (in MMDevice first_peer,
- inout streamQoS the_qos,
- out boolean is_met,
- in flowSpec the_spec)
- raises (streamOpFailed,
- noSuchFlow,
- QoSRequestFailed);
- // Multicast bind
-
- void destroy (in StreamEndPoint the_ep,
- in string vdev_name)
- // ie VDev not found
- raises (notSupported);
- // Remove the StreamEndPoint and the related vdev
-
- string add_fdev (in Object the_fdev)
- raises (notSupported,
- streamOpFailed);
- // Not supported in the light profile, raises notsupported
-
- Object get_fdev (in string flow_name)
- raises (notSupported,
- noSuchFlow);
- // Not supported in the light profile, raises notsupported
-
- void remove_fdev (in string flow_name)
- raises (notSupported,
- noSuchFlow);
- // Not supported in the light profile, raises notsupported
- };
-};