summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/AV/AVStreams_i_T.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/AV/AVStreams_i_T.h')
-rw-r--r--TAO/orbsvcs/orbsvcs/AV/AVStreams_i_T.h118
1 files changed, 118 insertions, 0 deletions
diff --git a/TAO/orbsvcs/orbsvcs/AV/AVStreams_i_T.h b/TAO/orbsvcs/orbsvcs/AV/AVStreams_i_T.h
new file mode 100644
index 00000000000..90addb24e28
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/AV/AVStreams_i_T.h
@@ -0,0 +1,118 @@
+// $Id$
+
+#ifndef TAO_AV_AVSTREAMS_I_T_H
+#define TAO_AV_AVSTREAMS_I_T_H
+
+template <class IF>
+class TAO_ORBSVCS_Export TAO_StreamEndPoint
+ : public virtual TAO_Base_StreamEndPoint,
+ public virtual TAO_PropertySet<IF>,
+ public virtual PortableServer::RefCountServantBase
+{
+ // = DESCRIPTION
+ // The Stream EndPoint. Used to implement one endpoint of a stream
+ // that implements the transport layer.
+public:
+ TAO_StreamEndPoint (void);
+ // Constructor
+
+ virtual void stop (const AVStreams::flowSpec &the_spec,
+ CORBA::Environment &env = CORBA::Environment::default_environment ());
+ // Stop the stream. Empty the_spec means, for all the flows
+
+ virtual void start (const AVStreams::flowSpec &the_spec,
+ CORBA::Environment &env = CORBA::Environment::default_environment ());
+ // Start the stream, Empty the_spec means, for all the flows
+
+ virtual void destroy (const AVStreams::flowSpec &the_spec,
+ CORBA::Environment &env = CORBA::Environment::default_environment ());
+ // Destroy the stream, Empty the_spec means, for all the flows
+
+ virtual CORBA::Boolean connect (AVStreams::StreamEndPoint_ptr responder,
+ AVStreams::streamQoS &qos_spec,
+ const AVStreams::flowSpec &the_spec,
+ CORBA::Environment &env = CORBA::Environment::default_environment ()) = 0;
+ // Called by StreamCtrl. responder is the peer to connect to
+
+ virtual CORBA::Boolean request_connection (AVStreams::StreamEndPoint_ptr initiator,
+ CORBA::Boolean is_mcast,
+ AVStreams::streamQoS &qos,
+ AVStreams::flowSpec &the_spec,
+ CORBA::Environment &env = CORBA::Environment::default_environment ());
+ // Called by the peer StreamEndPoint. The flow_spec indicates the
+ // flows (which contain transport addresses etc.)
+
+ virtual CORBA::Boolean modify_QoS (AVStreams::streamQoS &new_qos,
+ const AVStreams::flowSpec &the_flows,
+ CORBA::Environment &env = CORBA::Environment::default_environment ());
+ // Change the transport qos on a stream
+
+ virtual CORBA::Boolean set_protocol_restriction (const AVStreams::protocolSpec &the_pspec,
+ CORBA::Environment &env = CORBA::Environment::default_environment ());
+ // Used to restrict the set of protocols
+
+ virtual void disconnect (const AVStreams::flowSpec &the_spec,
+ CORBA::Environment &env = CORBA::Environment::default_environment ());
+ // disconnect the flows
+
+ virtual void set_FPStatus (const AVStreams::flowSpec &the_spec,
+ const char *fp_name,
+ const CORBA::Any &fp_settings,
+ CORBA::Environment &env = CORBA::Environment::default_environment ());
+ // Used to control the flow
+
+ virtual CORBA::Object_ptr get_fep (const char *flow_name,
+ CORBA::Environment &env = CORBA::Environment::default_environment ());
+ // Not implemented in the light profile, throws notsupported
+
+ virtual char * add_fep (CORBA::Object_ptr the_fep,
+ CORBA::Environment &env = CORBA::Environment::default_environment ());
+ // Not implemented in the light profile, throws notsupported
+
+ virtual void remove_fep (const char *fep_name,
+ CORBA::Environment &env = CORBA::Environment::default_environment ());
+ // Not implemented in the light profile, throws notsupported
+
+ virtual void set_negotiator (AVStreams::Negotiator_ptr new_negotiator,
+ CORBA::Environment &env = CORBA::Environment::default_environment ());
+ // Used to "attach" a negotiator to the endpoint
+
+ virtual void set_key (const char *flow_name,
+ const AVStreams::key & the_key,
+ CORBA::Environment &env = CORBA::Environment::default_environment ());
+ // Used for public key encryption.
+
+ virtual void set_source_id (CORBA::Long source_id,
+ CORBA::Environment &env = CORBA::Environment::default_environment ());
+ // Used to set a unique id for packets sent by this streamendpoint
+
+ virtual ~TAO_StreamEndPoint (void);
+ // Destructor
+
+private:
+ u_int flow_count_;
+ // Count of the number of flows in this streamendpoint, used to
+ // generate unique names for the flows.
+ u_int flow_num_;
+ // current flow number used for system generation of flow names.
+ typedef ACE_Hash_Map_Manager <TAO_String_Hash_Key,CORBA::Object_ptr,ACE_Null_Mutex>
+ FlowEndPoint_Map;
+ FlowEndPoint_Map fep_map_;
+ // hash table for the flownames and its corresponding flowEndpoint
+ // reference.
+ AVStreams::flowSpec flows_;
+ // sequence of supported flow names.
+ CORBA::Long source_id_;
+ // source id used for multicast.
+};
+
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "AVStreams_i_T.cpp"
+#endif /*ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("AVStreams_i_T.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#endif /* TAO_AV_AVSTREAMS_I_T_H */