summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsumedh <sumedh@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-01-16 02:05:14 +0000
committersumedh <sumedh@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-01-16 02:05:14 +0000
commitf68a731502f049f3370a60e7b315bf2d55b41ffd (patch)
tree3b180523579e5c83f2af6c84916c6f9c18def4b6
parent2bcabb2e745916f2bc76b6c1919a27a4cbf8561e (diff)
downloadATCD-f68a731502f049f3370a60e7b315bf2d55b41ffd.tar.gz
Added file
-rw-r--r--TAO/orbsvcs/orbsvcs/AVStreams_Full.idl246
1 files changed, 246 insertions, 0 deletions
diff --git a/TAO/orbsvcs/orbsvcs/AVStreams_Full.idl b/TAO/orbsvcs/orbsvcs/AVStreams_Full.idl
new file mode 100644
index 00000000000..182088d7037
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/AVStreams_Full.idl
@@ -0,0 +1,246 @@
+// $Id$
+
+// Additional IDL for full profile
+#include "AVStreams.idl"
+
+module AVStreams_Full{
+
+ exception protocolNotSupported{};
+ exception formatNotSupported{};
+ exception formatMismatch{};
+ exception FEPMismatch{};
+ exception alreadyConnected{};
+ exception invalidSettings{string settings;};
+ exception notConnected{};
+ exception deviceQosMismatch{};
+ exception failedToConnect{string reason;};
+ exception failedToListen{string reason;};
+
+
+ interface FlowProducer;
+ interface FlowConsumer;
+ interface FlowEndPoint;
+ interface FDev;
+
+ interface FlowConnection : PropertyService::PropertySet{
+ void stop();
+ void start();
+ void destroy();
+
+ boolean modify_QoS(
+
+ inout AVStreams::QoS new_qos)
+ raises (AVStreams::QoSRequestFailed);
+
+ boolean use_flow_protocol(
+ in string fp_name,
+ in any fp_settings)
+ raises (AVStreams::FPError, AVStreams::notSupported);
+
+ oneway void push_event(in AVStreams::streamEvent the_event);
+
+ boolean connect_devs(in FDev a_party, in FDev b_party,
+ inout AVStreams::QoS the_qos)
+ raises (AVStreams::streamOpFailed,
+ AVStreams::streamOpDenied,
+ AVStreams::QoSRequestFailed);
+
+ boolean connect(
+ in FlowProducer flow_producer,
+ in FlowConsumer flow_consumer,
+ inout AVStreams::QoS the_qos)
+ raises (formatMismatch, FEPMismatch, alreadyConnected);
+
+ boolean disconnect();
+
+ // The notSupported exception is raised where
+ // flow cannot have multiple producers
+ boolean add_producer(in FlowProducer flow_producer,
+ inout AVStreams::QoS the_qos)
+ raises (alreadyConnected, AVStreams::notSupported);
+
+ boolean add_consumer(in FlowConsumer flow_consumer,
+ inout AVStreams::QoS the_qos)
+ raises (alreadyConnected);
+
+ boolean drop(in FlowEndPoint target)
+ raises (notConnected);
+ };
+
+ interface FlowEndPoint : PropertyService::PropertySet
+ {
+ boolean lock();
+ void unlock();
+
+ void stop();
+ void start();
+ void destroy();
+
+ // Default is a nil object reference
+ attribute AVStreams::StreamEndPoint related_sep;
+ attribute FlowConnection related_flow_connection;
+
+ FlowEndPoint get_connected_fep()
+ raises (notConnected,
+ AVStreams::notSupported);
+
+ // syntax of fp_name is <flowProtocol>
+ boolean use_flow_protocol(in string fp_name,
+ in any fp_settings)
+ raises (AVStreams::FPError, AVStreams::notSupported);
+
+ // set_format() initializes 'format'
+ // as current media format e.g. MPEG.
+ void set_format(in string format)
+ raises (AVStreams::notSupported);
+
+ void set_dev_params(
+ in PropertyService::Properties new_settings)
+ raises (PropertyService::PropertyException,
+ AVStreams::streamOpFailed);
+
+ void set_protocol_restriction(in AVStreams::protocolSpec
+ the_spec)
+ raises (AVStreams::notSupported);
+
+ boolean is_fep_compatible(in FlowEndPoint fep)
+ raises (formatMismatch, deviceQosMismatch);
+
+ boolean set_peer(
+ in FlowConnection the_fc,
+
+ in FlowEndPoint the_peer_fep,
+ inout AVStreams::QoS the_qos)
+ raises (AVStreams::QoSRequestFailed,
+ AVStreams::streamOpFailed);
+
+ boolean set_Mcast_peer(
+ in FlowConnection the_fc,
+ in AVStreams::MCastConfigIf a_mcastconfigif,
+ inout AVStreams::QoS the_qos)
+ raises (AVStreams::QoSRequestFailed);
+
+ };
+
+ interface FlowProducer : FlowEndPoint
+ {
+ boolean connect_to_peer(inout AVStreams::QoS the_qos,
+ in string address,
+
+ in string use_flow_protocol) // syntax <flowProtocol>
+ raises(failedToConnect,
+ AVStreams::FPError, AVStreams::QoSRequestFailed);
+
+ string connect_mcast(inout AVStreams::QoS the_qos,
+ out boolean is_met,
+ in string address,
+ in string use_flow_protocol)
+ raises (failedToConnect,
+ AVStreams::notSupported,
+ AVStreams::FPError,
+ AVStreams::QoSRequestFailed);
+
+ string get_rev_channel(in string pcol_name);
+
+ void set_key(in AVStreams::key the_key);
+ void set_source_id(in long source_id);
+ };
+
+ interface FlowConsumer : FlowEndPoint
+ {
+
+
+ // Needs to know its peer to choose its protocol correctly
+ // Also to ask for a reverse channel for credit-based flow
+ // control, if one is required
+ string go_to_listen(
+ inout AVStreams::QoS the_qos,
+ in boolean is_mcast,
+ in FlowProducer peer,
+ inout string flowProtocol)// syntax <flowProtocol>
+ raises(failedToListen, AVStreams::FPError,
+ AVStreams::QoSRequestFailed);
+ };
+
+ interface FDev : PropertyService::PropertySet {
+ FlowProducer create_producer(
+ in FlowConnection the_requester,
+ inout AVStreams::QoS the_qos,
+ out boolean met_qos,
+ inout string named_fdev)
+ raises(AVStreams::streamOpFailed,
+ AVStreams::streamOpDenied,
+ AVStreams::notSupported,
+ AVStreams::QoSRequestFailed);
+
+ FlowConsumer create_consumer(
+ in FlowConnection the_requester,
+ inout AVStreams::QoS the_qos,
+ out boolean met_qos,
+ inout string named_fdev)
+ raises(AVStreams::streamOpFailed,
+ AVStreams::streamOpDenied,
+ AVStreams::notSupported,
+ AVStreams::QoSRequestFailed);
+
+ FlowConnection bind(in FDev peer_device,
+ inout AVStreams::QoS the_qos,
+ out boolean is_met)
+ raises (AVStreams::streamOpFailed,
+ AVStreams::QoSRequestFailed);
+
+ FlowConnection bind_mcast(in FDev first_peer,
+ inout AVStreams::QoS the_qos,
+ out boolean is_met)
+ raises (AVStreams::streamOpFailed,
+ AVStreams::QoSRequestFailed);
+
+ void destroy(in FlowEndPoint the_ep, in string fdev_name)
+ // ie FDev not found
+ raises (AVStreams::notSupported);
+ };
+
+ enum PositionOrigin {
+ AbsolutePosition, RelativePosition, ModuloPosition
+ };
+
+ enum PositionKey {
+ ByteCount, SampleCount, MediaTime
+ };
+
+ struct Position {
+ PositionOrigin origin;
+ PositionKey key;
+ long value;
+ };
+
+ exception PostionKeyNotSupported { PositionKey key;};
+ exception InvalidPosition { PositionKey key;};
+
+ // MediaControl interface is similar to
+ // ControlledStream interface in MSS.
+ // It can be inherited by flow endpoints or
+ // FlowConnection interfaces.
+ interface MediaControl{
+
+ exception PostionKeyNotSupported { PositionKey key;};
+
+ Position get_media_position(
+ in PositionOrigin an_origin,
+ in PositionKey a_key)
+ raises (PostionKeyNotSupported);
+
+ void set_media_position(in Position a_position)
+ raises (PostionKeyNotSupported, InvalidPosition);
+
+ void start(in Position a_position)
+ raises(InvalidPosition);
+ void pause(in Position a_position)
+ raises(InvalidPosition);
+ void resume(in Position a_position)
+ raises(InvalidPosition);
+ void stop(in Position a_position)
+ raises(InvalidPosition);
+ };
+};
+