diff options
author | crodrigu <crodrigu@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2001-03-28 13:25:40 +0000 |
---|---|---|
committer | crodrigu <crodrigu@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2001-03-28 13:25:40 +0000 |
commit | 6d52ef0cebce51e16562ad32610b37423c860c6c (patch) | |
tree | 5875c9214aa0340a89b090608d33e202a7537d05 | |
parent | 32343085c3f4476cb0d0edb380e6151f7ccf6fae (diff) | |
download | ATCD-6d52ef0cebce51e16562ad32610b37423c860c6c.tar.gz |
ChangeLogTag: Wed Mar 28 08:18:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-rw-r--r-- | TAO/ChangeLogs/ChangeLog-02a | 18 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/AVStreams_i.h | 583 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/AV_Core.h | 52 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy.h | 119 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.h | 179 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/Flows_T.h | 58 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/MCast.h | 57 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/Policy.h | 58 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/Protocol_Factory.h | 50 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/RTCP.h | 81 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/RTP.h | 44 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/TCP.h | 91 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/Transport.h | 144 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/UDP.h | 87 |
14 files changed, 903 insertions, 718 deletions
diff --git a/TAO/ChangeLogs/ChangeLog-02a b/TAO/ChangeLogs/ChangeLog-02a index 100057a2f65..1d144921a75 100644 --- a/TAO/ChangeLogs/ChangeLog-02a +++ b/TAO/ChangeLogs/ChangeLog-02a @@ -1,3 +1,21 @@ +Wed Mar 28 08:18:00 2001 Craig Rodrigues <crodrigu@bbn.com> + + * orbsvcs/orbsvcs/AV:UDP.h + * orbsvcs/orbsvcs/AVStreams_i.h + * orbsvcs/orbsvcs/Transport.h + * orbsvcs/orbsvcs/TCP.h + * orbsvcs/orbsvcs/RTP.h + * orbsvcs/orbsvcs/RTCP.h + * orbsvcs/orbsvcs/Protocol_Factory.h + * orbsvcs/orbsvcs/Policy.h + * orbsvcs/orbsvcs/MCast.h + * orbsvcs/orbsvcs/Flows_T.h + * orbsvcs/orbsvcs/Endpoint_Strategy_T.h + * orbsvcs/orbsvcs/Endpoint_Strategy.h + * orbsvcs/orbsvcs/AV_Core.h + * orbsvcs/orbsvcs/FlowSpec_Entry.h + Converted commenting style to doxygen, added some comments. + Wed Mar 28 06:15:02 2001 Balachandran Natarajan <bala@cs.wustl.edu> * tests/AMI/client.cpp: Fixed a compile error in Windoows build. diff --git a/TAO/orbsvcs/orbsvcs/AV/AVStreams_i.h b/TAO/orbsvcs/orbsvcs/AV/AVStreams_i.h index bcb1ccf583d..352c6fc95f5 100644 --- a/TAO/orbsvcs/orbsvcs/AV/AVStreams_i.h +++ b/TAO/orbsvcs/orbsvcs/AV/AVStreams_i.h @@ -1,21 +1,16 @@ /* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// ORBSVCS (AVStreams) -// -// = FILENAME -// AVStreams_i.h -// -// = AUTHOR -// Sumedh Mungee <sumedh@cs.wustl.edu> -// Nagarajan Surendran <naga@cs.wustl.edu> -// -// -// ============================================================================ + +//============================================================================= +/** + * @file AVStreams_i.h + * + * $Id$ + * + * @author Sumedh Mungee <sumedh@cs.wustl.edu> Nagarajan Surendran <naga@cs.wustl.edu> + */ +//============================================================================= + #ifndef AVSTREAMS_I_H #define AVSTREAMS_I_H @@ -65,37 +60,40 @@ #if !defined (TAO_ORBSVCS_HAS_Trader) // = Classes to deal with the ACE_Hash_Map_Manager. +/** + * @class TAO_String_Hash_Key + * + * @brief Key for the Hash Table. The EXT_ID of the + * ACE_Hash_Map_Manager. + */ class TAO_AV_Export TAO_String_Hash_Key : public CORBA::String_var { - // = TITLE - // Key for the Hash Table. The EXT_ID of the - // ACE_Hash_Map_Manager. public: // = Initialization and termination methods. + /// Default constructor. TAO_String_Hash_Key (void); - // Default constructor. + /// Constructor from a const string. TAO_String_Hash_Key (char * name); - // Constructor from a const string. + /// Constructor from a const string. TAO_String_Hash_Key (const char * name); - // Constructor from a const string. + /// Copy constructor. TAO_String_Hash_Key (const CORBA::String_var &hash_key); - // Copy constructor. + /// Destructor. ~TAO_String_Hash_Key (void); - // Destructor. + /// The operator for hash binding and "find"ing. int operator == (const TAO_String_Hash_Key &hash_key) const; - // The operator for hash binding and "find"ing. + /// The operator for hash binding and "find"ing. friend int operator < (const TAO_String_Hash_Key &left, const TAO_String_Hash_Key &right); - // The operator for hash binding and "find"ing. + /// The function that computes a hash value. u_long hash (void) const; - // The function that computes a hash value. }; #endif /* !TAO_ORBSVCS_HAS_Trader */ @@ -113,60 +111,64 @@ public: AV_Null_MediaCtrl (void); }; - +/** + * @class TAO_Basic_StreamCtrl + * @brief Base class for StreamCtrl, implements basic stream start + * and stop functionality. + */ class TAO_AV_Export TAO_Basic_StreamCtrl : public virtual POA_AVStreams::Basic_StreamCtrl, public virtual TAO_PropertySet, public virtual PortableServer::RefCountServantBase { - // = DESCRIPTION - // Base class for StreamCtrl, implements basic stream start - // and stop functionality public: + /// Default Constructor TAO_Basic_StreamCtrl (void); - // Default Constructor + /// Destructor. virtual ~TAO_Basic_StreamCtrl (void); - // Destructor. + /// Stop the transfer of data of the stream + /// Empty the_spec means apply operation to all flows virtual void stop (const AVStreams::flowSpec &the_spec, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::noSuchFlow)); - // Stop the transfer of data of the stream - // Empty the_spec means apply operation to all flows + /// Start the transfer of data in the stream. + /// Empty the_spec means apply operation to all flows virtual void start (const AVStreams::flowSpec &the_spec, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::noSuchFlow)); - // Start the transfer of data in the stream. - // Empty the_spec means apply operation to all flows + /** + * 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 + */ virtual void destroy (const AVStreams::flowSpec &the_spec, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::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 + /// Changes the QoS associated with the stream + /// Empty the_spec means apply operation to all flows virtual CORBA::Boolean modify_QoS (AVStreams::streamQoS &new_qos, const AVStreams::flowSpec &the_spec, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::noSuchFlow, AVStreams::QoSRequestFailed)); - // Changes the QoS associated with the stream - // Empty the_spec means apply operation to all flows + /// Used by StreamEndPoint and VDev to inform StreamCtrl of events. + /// E.g., loss of flow, reestablishment of flow, etc.. virtual void push_event (const struct CosPropertyService::Property & the_event, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException)); - // Used by StreamEndPoint and VDev to inform StreamCtrl of events. - // E.g., loss of flow, reestablishment of flow, etc.. + /// Used to control the flow protocol parameters. virtual void set_FPStatus (const AVStreams::flowSpec &the_spec, const char *fp_name, const CORBA::Any &fp_settings, @@ -174,45 +176,44 @@ public: ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::noSuchFlow, AVStreams::FPError)); - // Used to control the flow protocol parameters. + /// Not implemented in the light profile, will raise the notsupported + /// exception virtual CORBA::Object_ptr get_flow_connection (const char *flow_name, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::noSuchFlow, AVStreams::notSupported)); - // Not implemented in the light profile, will raise the notsupported - // exception + /// Not implemented in the light profile, will raise the notsupported + /// exception virtual void set_flow_connection (const char *flow_name, CORBA::Object_ptr flow_connection, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::noSuchFlow, AVStreams::notSupported)); - // Not implemented in the light profile, will raise the notsupported - // exception protected: + /// The Virtual Devices for this stream AVStreams::VDev_var vdev_a_; AVStreams::VDev_var vdev_b_; - // The Virtual Devices for this stream + /// The Endpoints for this stream AVStreams::StreamEndPoint_A_var sep_a_; AVStreams::StreamEndPoint_B_var sep_b_; - // The Endpoints for this stream + /// Hash table for the flow names and its corresponding flowconnection object reference. typedef ACE_Hash_Map_Manager <TAO_String_Hash_Key,AVStreams::FlowConnection_ptr,ACE_Null_Mutex> FlowConnection_Map; typedef ACE_Hash_Map_Iterator <TAO_String_Hash_Key,AVStreams::FlowConnection_ptr,ACE_Null_Mutex> FlowConnection_Map_Iterator; typedef ACE_Hash_Map_Entry <TAO_String_Hash_Key,AVStreams::FlowConnection_ptr> FlowConnection_Map_Entry; FlowConnection_Map flow_connection_map_; - // Hash table for the flow names and its corresponding flowconnection object reference. AVStreams::FlowConnection_seq flowConnections_; + ///sequence of flow names. u_int flow_count_; AVStreams::flowSpec flows_; - //sequence of flow names. }; class TAO_AV_Export TAO_Negotiator @@ -231,79 +232,90 @@ class TAO_MCastConfigIf; class MMDevice_Map_Hash_Key { public: + /// default constructor. MMDevice_Map_Hash_Key (void); - // default constructor. + /// constructor. MMDevice_Map_Hash_Key (AVStreams::MMDevice_ptr mmdevice); - // constructor. + /// copy constructor. MMDevice_Map_Hash_Key (const MMDevice_Map_Hash_Key&); - // copy constructor. + /// destructor. ~MMDevice_Map_Hash_Key (void); - // destructor. + /// operator== needed by ACE_Hash_Map_Manager. int operator == (const MMDevice_Map_Hash_Key &hash_key) const; - // operator== needed by ACE_Hash_Map_Manager. + /// operator== needed by ACE_Hash_Map_Manager. friend int operator < (const MMDevice_Map_Hash_Key &left, const MMDevice_Map_Hash_Key &right); - // operator== needed by ACE_Hash_Map_Manager. + /// hash function for this mmdevice. u_long hash (void) const; - // hash function for this mmdevice. static const int hash_maximum_; protected: AVStreams::MMDevice_ptr mmdevice_; }; +/** + * @class TAO_StreamCtrl + * @brief 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. + */ class TAO_AV_Export TAO_StreamCtrl : public virtual POA_AVStreams::StreamCtrl, public virtual TAO_Basic_StreamCtrl, public virtual PortableServer::RefCountServantBase { - // = 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. public: + /// Default Constructor TAO_StreamCtrl (void); - // Default Constructor + /// Copy Constructor to fool g++ TAO_StreamCtrl (TAO_StreamCtrl const &); - // Copy Constructor to fool g++ + /// virtual destructor. virtual ~TAO_StreamCtrl (void); - // virtual destructor. + /// Fooling g++ void operator= (TAO_StreamCtrl const &); - // Fooling g++ + /// Stop the transfer of data of the stream + /// Empty the_spec means apply operation to all flows virtual void stop (const AVStreams::flowSpec &the_spec, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::noSuchFlow)); - // Stop the transfer of data of the stream - // Empty the_spec means apply operation to all flows + /// Start the transfer of data in the stream. + /// Empty the_spec means apply operation to all flows virtual void start (const AVStreams::flowSpec &the_spec, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::noSuchFlow)); - // Start the transfer of data in the stream. - // Empty the_spec means apply operation to all flows + /** + * 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 + */ virtual void destroy (const AVStreams::flowSpec &the_spec, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::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 + /** + * 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 + */ virtual CORBA::Boolean bind_devs (AVStreams::MMDevice_ptr a_party, AVStreams::MMDevice_ptr b_party, AVStreams::streamQoS& the_qos, @@ -313,12 +325,12 @@ public: AVStreams::streamOpFailed, AVStreams::noSuchFlow, AVStreams::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 + /** + * Establish a connection between two streamendpoints. This can + * be used if the streamendpoints have been created independent of + * a MMDevice + */ virtual CORBA::Boolean bind (AVStreams::StreamEndPoint_A_ptr a_party, AVStreams::StreamEndPoint_B_ptr b_party, AVStreams::streamQoS &the_qos, @@ -328,9 +340,6 @@ public: AVStreams::streamOpFailed, AVStreams::noSuchFlow, AVStreams::QoSRequestFailed)); - // Establish a connection between two streamendpoints. This can - // be used if the streamendpoints have been created independent of - // a MMDevice virtual void unbind_dev (AVStreams::MMDevice_ptr dev, const AVStreams::flowSpec & the_spec, @@ -339,18 +348,18 @@ public: AVStreams::streamOpFailed, AVStreams::noSuchFlow)); + /// Unbind the_ep from the stream. Empty the_spec means apply to all flows. virtual void unbind_party (AVStreams::StreamEndPoint_ptr the_ep, const AVStreams::flowSpec &the_spec, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::streamOpFailed, AVStreams::noSuchFlow)); - // Unbind the_ep from the stream. Empty the_spec means apply to all flows. + /// unbind the stream. Same effect as Basic_StreamCtrl::destroy () virtual void unbind (CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::streamOpFailed)); - // unbind the stream. Same effect as Basic_StreamCtrl::destroy () virtual AVStreams::VDev_ptr get_related_vdev (AVStreams::MMDevice_ptr adev, AVStreams::StreamEndPoint_out sep, @@ -358,14 +367,14 @@ public: ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::streamOpFailed)); + /// Changes the QoS associated with the stream + /// Empty the_spec means apply operation to all flows virtual CORBA::Boolean modify_QoS (AVStreams::streamQoS &new_qos, const AVStreams::flowSpec &the_spec, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::noSuchFlow, AVStreams::QoSRequestFailed)); - // Changes the QoS associated with the stream - // Empty the_spec means apply operation to all flows protected: @@ -405,11 +414,11 @@ public: Peer_Interface interface_; }; + /// Default constructor. TAO_MCastConfigIf (void); - // Default constructor. + /// Dtor ~TAO_MCastConfigIf (void); - // Dtor virtual CORBA::Boolean set_peer (CORBA::Object_ptr peer, AVStreams::streamQoS & the_qos, @@ -443,14 +452,14 @@ public: AVStreams::streamOpFailed)); protected: + /// checks whether the flowname is in the flow_spec. int in_flowSpec (const AVStreams::flowSpec& flow_spec, const char *flow_name); - // checks whether the flowname is in the flow_spec. + /// Multicast socket. ACE_SOCK_Dgram_Mcast sock_mcast_; - // Multicast socket. + /// Initial configuration to be distributed to all B parties when they join. CosPropertyService::Properties initial_configuration_; - // Initial configuration to be distributed to all B parties when they join. ACE_DLList<Peer_Info> peer_list_; ACE_DLList_Iterator<Peer_Info> peer_list_iterator_; @@ -467,45 +476,48 @@ class TAO_AV_Source; class TAO_AV_RTP_State; class TAO_AV_Flow_Handler; +/** + * @class TAO_Base_StreamEndPoint + * + * Base class for the A/V StreamEndPoint class. this class + * is used to control the stream. It should be subclassed + * by applications that want to provide more control features. + */ class TAO_AV_Export TAO_Base_StreamEndPoint { - // = DESCRIPTION - // Base class for the A/V StreamEndPoint class. this class - // is used to control the stream. It should be subclassed - // by applications that want to provide more control features. // @@Naga: Rename this class to TAO_Base_EndPoint since both stream and flowendpoints derive from it. public: TAO_Base_StreamEndPoint (void); virtual ~TAO_Base_StreamEndPoint (void); + /// called when streamendpoint is instantiated virtual int handle_open (void); - // called when streamendpoint is instantiated + /// called when streamendpoint is being destructed virtual int handle_close (void); - // called when streamendpoint is being destructed + /// Application needs to define this virtual int handle_stop (const AVStreams::flowSpec &the_spec, CORBA::Environment &env = CORBA::Environment::default_environment ()); - // Application needs to define this + /// Application needs to define this virtual int handle_start (const AVStreams::flowSpec &the_spec, CORBA::Environment &env = CORBA::Environment::default_environment ()); - // Application needs to define this + /// Application needs to define this virtual int handle_destroy (const AVStreams::flowSpec &the_spec, CORBA::Environment &env = CORBA::Environment::default_environment ()); - // Application needs to define this + /// Application needs to define this virtual CORBA::Boolean handle_preconnect (AVStreams::flowSpec &the_spec); - // Application needs to define this + /// Application needs to define this virtual CORBA::Boolean handle_postconnect (AVStreams::flowSpec &the_spec); - // Application needs to define this + /// Application needs to define this virtual CORBA::Boolean handle_connection_requested (AVStreams::flowSpec &the_spec, CORBA::Environment &env = CORBA::Environment::default_environment ()); - // Application needs to define this virtual int get_callback (const char *flowname, TAO_AV_Callback *&callback); @@ -526,37 +538,41 @@ class TAO_AV_Connector; class TAO_Forward_FlowSpec_Entry; class TAO_Reverse_FlowSpec_Entry; +/** + * @class TAO_StreamEndPoint + * @brief The Stream EndPoint. Used to implement one endpoint of a stream + * that implements the transport layer. + */ class TAO_AV_Export TAO_StreamEndPoint : public virtual POA_AVStreams::StreamEndPoint, public virtual TAO_Base_StreamEndPoint, public virtual TAO_PropertySet, public virtual PortableServer::RefCountServantBase { - // = DESCRIPTION - // The Stream EndPoint. Used to implement one endpoint of a stream - // that implements the transport layer. + public: + /// Constructor TAO_StreamEndPoint (void); - // Constructor + /// Stop the stream. Empty the_spec means, for all the flows virtual void stop (const AVStreams::flowSpec &the_spec, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::noSuchFlow)); - // Stop the stream. Empty the_spec means, for all the flows + /// Start 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 ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::noSuchFlow)); - // Start the stream, Empty the_spec means, for all the flows + /// Destroy 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 ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::noSuchFlow)); - // Destroy the stream, Empty the_spec means, for all the flows + /// Called by StreamCtrl. responder is the peer to connect to virtual CORBA::Boolean connect (AVStreams::StreamEndPoint_ptr responder, AVStreams::streamQoS& qos_spec, const AVStreams::flowSpec& the_spec, @@ -565,8 +581,9 @@ public: AVStreams::noSuchFlow, AVStreams::QoSRequestFailed, AVStreams::streamOpFailed)); - // Called by StreamCtrl. responder is the peer to connect to + /// Called by the peer StreamEndPoint. The flow_spec indicates the + /// flows (which contain transport addresses etc.) virtual CORBA::Boolean request_connection (AVStreams::StreamEndPoint_ptr initiator, CORBA::Boolean is_mcast, AVStreams::streamQoS &qos, @@ -577,29 +594,28 @@ public: AVStreams::noSuchFlow, AVStreams::QoSRequestFailed, AVStreams::FPError)); - // Called by the peer StreamEndPoint. The flow_spec indicates the - // flows (which contain transport addresses etc.) + /// Change the transport qos on a stream virtual CORBA::Boolean modify_QoS (AVStreams::streamQoS &new_qos, const AVStreams::flowSpec &the_flows, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::noSuchFlow, AVStreams::QoSRequestFailed)); - // Change the transport qos on a stream + /// Used to restrict the set of protocols virtual CORBA::Boolean set_protocol_restriction (const AVStreams::protocolSpec &the_pspec, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException)); - // Used to restrict the set of protocols + /// disconnect the flows virtual void disconnect (const AVStreams::flowSpec &the_spec, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::noSuchFlow, AVStreams::streamOpFailed)); - // disconnect the flows + /// Used to control the flow virtual void set_FPStatus (const AVStreams::flowSpec &the_spec, const char *fp_name, const CORBA::Any &fp_settings, @@ -607,53 +623,53 @@ public: ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::noSuchFlow, AVStreams::FPError)); - // Used to control the flow + /// Not implemented in the light profile, throws notsupported virtual CORBA::Object_ptr get_fep (const char *flow_name, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::notSupported, AVStreams::noSuchFlow)); - // Not implemented in the light profile, throws notsupported + /// Not implemented in the light profile, throws notsupported virtual char * add_fep (CORBA::Object_ptr the_fep, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::notSupported, AVStreams::streamOpFailed)); - // Not implemented in the light profile, throws notsupported + /// Not implemented in the light profile, throws notsupported virtual void remove_fep (const char *fep_name, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::notSupported, AVStreams::streamOpFailed)); - // Not implemented in the light profile, throws notsupported + /// Used to "attach" a negotiator to the endpoint virtual void set_negotiator (AVStreams::Negotiator_ptr new_negotiator, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException)); - // Used to "attach" a negotiator to the endpoint + /// Used for public key encryption. virtual void set_key (const char *flow_name, const AVStreams::key & the_key, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException)); - // Used for public key encryption. + /// Used to set a unique id for packets sent by this streamendpoint virtual void set_source_id (CORBA::Long source_id, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException)); - // Used to set a unique id for packets sent by this streamendpoint + /// Destructor virtual ~TAO_StreamEndPoint (void); - // Destructor CORBA::Boolean multiconnect (AVStreams::streamQoS &the_qos, AVStreams::flowSpec &the_spec, CORBA::Environment &ACE_TRY_ENV); protected: + /// Helper methods to implement add_fep() char* add_fep_i (AVStreams::FlowEndPoint_ptr fep, CORBA::Environment &ACE_TRY_ENV) ACE_THROW_SPEC ((CORBA::SystemException, @@ -664,40 +680,41 @@ protected: ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::notSupported, AVStreams::streamOpFailed)); - // Helper methods to implement add_fep() + /// translate from application level to network level qos. int translate_qos (const AVStreams::streamQoS& application_qos, AVStreams::streamQoS& network_qos); - // translate from application level to network level qos. + /// Count of the number of flows in this streamendpoint, used to + /// generate unique names for the flows. u_int flow_count_; - // Count of the number of flows in this streamendpoint, used to - // generate unique names for the flows. + /// current flow number used for system generation of flow names. u_int flow_num_; - // current flow number used for system generation of flow names. + /// hash table for the flownames and its corresponding flowEndpoint reference. FlowEndPoint_Map fep_map_; - // hash table for the flownames and its corresponding flowEndpoint reference. + /// sequence of supported flow names. AVStreams::flowSpec flows_; - // sequence of supported flow names. + /// source id used for multicast. CORBA::Long source_id_; - // source id used for multicast. + /// our local negotiator for QoS. AVStreams::Negotiator_var negotiator_; - // our local negotiator for QoS. + /// Our available list of protocols. AVStreams::protocolSpec protocols_; - // Our available list of protocols. + /// Chosen protocol for this streamendpoint based on availableprotocols property. CORBA::String_var protocol_; - // Chosen protocol for this streamendpoint based on availableprotocols property. + /// Key used for encryption. AVStreams::key key_; - // Key used for encryption. +/// TAO_Forward_FlowSpec_Entry forward_entries_ [FLOWSPEC_MAX]; +/// TAO_Reverse_FlowSpec_Entry reverse_entries_ [FLOWSPEC_MAX]; u_short mcast_port_; ACE_CString mcast_addr_; ACE_Hash_Map_Manager <TAO_String_Hash_Key, TAO_FlowSpec_Entry*,ACE_Null_Mutex> mcast_entry_map_; @@ -706,22 +723,23 @@ protected: AVStreams::StreamEndPoint_var peer_sep_; AVStreams::SFPStatus *sfp_status_; AVStreams::StreamCtrl_var streamctrl_; -// TAO_Forward_FlowSpec_Entry forward_entries_ [FLOWSPEC_MAX]; -// TAO_Reverse_FlowSpec_Entry reverse_entries_ [FLOWSPEC_MAX]; }; - +/** + * @class TAO_StreamEndPoint_A + * @brief The "A" side of a streamendpoint + */ class TAO_AV_Export TAO_StreamEndPoint_A : public virtual POA_AVStreams::StreamEndPoint_A, public virtual TAO_StreamEndPoint, public virtual PortableServer::RefCountServantBase { - // = DESCRIPTION - // The "A" side of a streamendpoint + public: + /// Constructor TAO_StreamEndPoint_A (void); - // Constructor + /// Used for ATM-style multicast virtual CORBA::Boolean multiconnect (AVStreams::streamQoS &the_qos, AVStreams::flowSpec &the_spec, CORBA::Environment &env = CORBA::Environment::default_environment ()) @@ -729,8 +747,8 @@ public: AVStreams::noSuchFlow, AVStreams::QoSRequestFailed, AVStreams::streamOpFailed)); - // Used for ATM-style multicast + /// Used for ATM-style multicast virtual CORBA::Boolean connect_leaf (AVStreams::StreamEndPoint_B_ptr the_ep, AVStreams::streamQoS &the_qos, const AVStreams::flowSpec &the_flows, @@ -740,8 +758,8 @@ public: AVStreams::noSuchFlow, AVStreams::QoSRequestFailed, AVStreams::notSupported)); - // Used for ATM-style multicast + /// Used to remove a multicast leaf virtual void disconnect_leaf (AVStreams::StreamEndPoint_B_ptr the_ep, const AVStreams::flowSpec &theSpec, CORBA::Environment &env = CORBA::Environment::default_environment ()) @@ -749,10 +767,9 @@ public: AVStreams::streamOpFailed, AVStreams::noSuchFlow, AVStreams::notSupported)); - // Used to remove a multicast leaf + /// Destructor virtual ~TAO_StreamEndPoint_A (void); - // Destructor }; @@ -760,6 +777,10 @@ public: #define TAO_Client_StreamEndPoint TAO_StreamEndPoint_A #define TAO_Server_StreamEndPoint TAO_StreamEndPoint_B +/** + * @class TAO_StreamEndPoint_B + * @brief The "B" side of a streamendpoint + */ class TAO_AV_Export TAO_StreamEndPoint_B : public virtual POA_AVStreams::StreamEndPoint_B, public virtual TAO_StreamEndPoint, @@ -768,9 +789,10 @@ class TAO_AV_Export TAO_StreamEndPoint_B : // = DESCRIPTION // The "B" side of a streamendpoint public: + /// Constructor TAO_StreamEndPoint_B (void); - // Constructor + /// Used for internet-style multicast virtual CORBA::Boolean multiconnect (AVStreams::streamQoS &the_qos, AVStreams::flowSpec &the_spec, CORBA::Environment &env = CORBA::Environment::default_environment ()) @@ -779,24 +801,27 @@ public: AVStreams::noSuchFlow, AVStreams::QoSRequestFailed, AVStreams::FPError)); - // Used for internet-style multicast + /// Destructor virtual ~TAO_StreamEndPoint_B (void); - // Destructor }; +/** + * @class TAO_VDev + * @brief Implements the VDev interface. One of these is created per + * connection, and represents device-specific parameters. + */ class TAO_AV_Export TAO_VDev :public virtual TAO_PropertySet, public virtual POA_AVStreams::VDev, public virtual PortableServer::RefCountServantBase { - // = DESCRIPTION - // Implements the VDev interface. One of these is created per connection, - // and represents device-specific parameters + public: + /// Default Constructor TAO_VDev (void); - // Default Constructor + /// Called to tell the vdev who the streamctrl, peer vdev is virtual CORBA::Boolean set_peer (AVStreams::StreamCtrl_ptr the_ctrl, AVStreams::VDev_ptr the_peer_dev, AVStreams::streamQoS &the_qos, @@ -806,8 +831,8 @@ public: AVStreams::noSuchFlow, AVStreams::QoSRequestFailed, AVStreams::streamOpFailed)); - // Called to tell the vdev who the streamctrl, peer vdev is + /// Used to set the streamctrl and multicast device virtual CORBA::Boolean set_Mcast_peer (AVStreams::StreamCtrl_ptr the_ctrl, AVStreams::MCastConfigIf_ptr a_mcastconfigif, AVStreams::streamQoS &the_qos, @@ -817,74 +842,75 @@ public: AVStreams::noSuchFlow, AVStreams::QoSRequestFailed, AVStreams::streamOpFailed)); - // Used to set the streamctrl and multicast device + /// Called by the peer VDev to configure the device (catch all) virtual void configure (const CosPropertyService::Property &the_config_mesg, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::PropertyException, AVStreams::streamOpFailed)); - // Called by the peer VDev to configure the device (catch all) + /// Used to set a format on a flowname virtual void set_format (const char *flowName, const char *format_name, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::notSupported)); - // Used to set a format on a flowname + /// Used to set device parameters virtual void set_dev_params (const char *flowName, const CosPropertyService::Properties &new_params, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::PropertyException, AVStreams::streamOpFailed)); - // Used to set device parameters + /// Called to change QoS of the device virtual CORBA::Boolean modify_QoS (AVStreams::streamQoS &the_qos, const AVStreams::flowSpec &the_spec, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::noSuchFlow, AVStreams::QoSRequestFailed)); - // Called to change QoS of the device + /// Destructor virtual ~TAO_VDev (void); - // Destructor protected: + /// hook called after set_peer is done to set the media ctrl of the peer vdev. virtual CORBA::Boolean set_media_ctrl (CORBA::Object_ptr media_ctrl, CORBA::Environment &env = CORBA::Environment::default_environment ()); - // hook called after set_peer is done to set the media ctrl of the peer vdev. + /// My stream controller AVStreams::StreamCtrl_var streamctrl_; - // My stream controller + /// My peer AVStreams::VDev_var peer_; - // My peer + /// The multicast VDev peer. AVStreams::MCastConfigIf_var mcast_peer_; - // The multicast VDev peer. }; class TAO_AV_Endpoint_Strategy; +/** + * @class TAO_MMDevice + * @brief Implements a factory to create Endpoints and VDevs + */ class TAO_AV_Export TAO_MMDevice :public virtual POA_AVStreams::MMDevice, public TAO_PropertySet, public virtual PortableServer::RefCountServantBase { - // = DESCRIPTION - // Implements a factory to create Endpoints and VDevs public: + /// Constructor enum MMDevice_Type {MMDEVICE_A = 0,MMDEVICE_B = 1}; TAO_MMDevice (TAO_AV_Endpoint_Strategy *endpoint_strategy_); - // Constructor + /// Copy constructor to fool g++ TAO_MMDevice (TAO_MMDevice const &); - // Copy constructor to fool g++ virtual AVStreams::StreamEndPoint_ptr create_A_B (MMDevice_Type type, AVStreams::StreamCtrl_ptr the_requester, @@ -895,6 +921,8 @@ public: const AVStreams::flowSpec &the_spec, CORBA::Environment &env = CORBA::Environment::default_environment ()); + /// Can be used to request the MMDevice to create a new StreamCtrl, + /// and call bind_devs on it virtual AVStreams::StreamCtrl_ptr bind (AVStreams::MMDevice_ptr peer_device, AVStreams::streamQoS &the_qos, CORBA::Boolean_out is_met, @@ -904,9 +932,8 @@ public: AVStreams::streamOpFailed, AVStreams::noSuchFlow, AVStreams::QoSRequestFailed)); - // Can be used to request the MMDevice to create a new StreamCtrl, - // and call bind_devs on it + /// Multicast bind virtual AVStreams::StreamCtrl_ptr bind_mcast (AVStreams::MMDevice_ptr first_peer, AVStreams::streamQoS &the_qos, CORBA::Boolean_out is_met, @@ -916,8 +943,8 @@ public: AVStreams::streamOpFailed, AVStreams::noSuchFlow, AVStreams::QoSRequestFailed)); - // Multicast bind + /// Called by StreamCtrl to create a "A" type streamandpoint and vdev virtual AVStreams::StreamEndPoint_A_ptr create_A (AVStreams::StreamCtrl_ptr the_requester, AVStreams::VDev_out the_vdev, AVStreams::streamQoS &the_qos, @@ -931,8 +958,8 @@ public: AVStreams::notSupported, AVStreams::QoSRequestFailed, AVStreams::noSuchFlow)); - // Called by StreamCtrl to create a "A" type streamandpoint and vdev + /// Called by StreamCtrl to create a "B" type streamandpoint and vdev virtual AVStreams::StreamEndPoint_B_ptr create_B (AVStreams::StreamCtrl_ptr the_requester, AVStreams::VDev_out the_vdev, AVStreams::streamQoS &the_qos, @@ -946,69 +973,68 @@ public: AVStreams::notSupported, AVStreams::QoSRequestFailed, AVStreams::noSuchFlow)); - // Called by StreamCtrl to create a "B" type streamandpoint and vdev + /// Remove the StreamEndPoint and the related vdev virtual void destroy (AVStreams::StreamEndPoint_ptr the_ep, const char *vdev_name, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::notSupported)); - // Remove the StreamEndPoint and the related vdev + /// Not supported in the light profile, raises notsupported virtual char * add_fdev (CORBA::Object_ptr the_fdev, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::notSupported, AVStreams::streamOpFailed)); - // Not supported in the light profile, raises notsupported + /// Not supported in the light profile, raises notsupported virtual CORBA::Object_ptr get_fdev (const char *flow_name, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::notSupported, AVStreams::noSuchFlow)); - // Not supported in the light profile, raises notsupported + /// Not supported in the light profile, raises notsupported virtual void remove_fdev (const char *flow_name, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::notSupported, AVStreams::noSuchFlow, AVStreams::streamOpFailed)); - // Not supported in the light profile, raises notsupported + /// Destructor virtual ~TAO_MMDevice (void); - // Destructor protected: + /// Helper method to implement add_fdev() char* add_fdev_i (AVStreams::FDev_ptr fdev, CORBA::Environment &ACE_TRY_ENV) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::notSupported, AVStreams::streamOpFailed)); - // Helper method to implement add_fdev() protected: TAO_AV_Endpoint_Strategy *endpoint_strategy_; + /// Count of the number of flows in this MMDevice , used to + /// generate unique names for the flows. u_int flow_count_; - // Count of the number of flows in this MMDevice , used to - // generate unique names for the flows. + /// current flow number used for system generation of flow names. u_int flow_num_; - // current flow number used for system generation of flow names. typedef ACE_Hash_Map_Manager <TAO_String_Hash_Key,AVStreams::FDev_ptr,ACE_Null_Mutex> FDev_Map; typedef ACE_Hash_Map_Iterator <TAO_String_Hash_Key,AVStreams::FDev_ptr,ACE_Null_Mutex> FDev_Map_Iterator; typedef ACE_Hash_Map_Entry <TAO_String_Hash_Key,AVStreams::FDev_ptr> FDev_Map_Entry; + /// hash table for the flownames and its corresponding flowEndpoint + /// reference. FDev_Map fdev_map_; - // hash table for the flownames and its corresponding flowEndpoint - // reference. + /// sequence of supported flow names. AVStreams::flowSpec flows_; - // sequence of supported flow names. TAO_StreamCtrl *stream_ctrl_; }; @@ -1016,53 +1042,54 @@ protected: class TAO_FlowConsumer; class TAO_FlowProducer; +/** + * @class TAO_FlowConnection + * @brief This class currently supports only one producer and one + * consumer per flow. + */ class TAO_AV_Export TAO_FlowConnection : public virtual POA_AVStreams::FlowConnection, public TAO_PropertySet, public virtual PortableServer::RefCountServantBase { - // =TITLE - // Class to manage a flow connection. - // - // =Description - // This class currently supports only one producer and one - // consumer per flow. + public: + /// default constructor. TAO_FlowConnection (void); - // default constructor. + /// stop this flow. virtual void stop (CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException)); - // stop this flow. + /// start this flow. virtual void start (CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException)); - // start this flow. + /// destroy this flow. virtual void destroy (CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException)); - // destroy this flow. + /// modify the QoS for this flow. virtual CORBA::Boolean modify_QoS (AVStreams::QoS & new_qos, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::QoSRequestFailed)); - // modify the QoS for this flow. + /// use the specified flow protocol for this flow. virtual CORBA::Boolean use_flow_protocol (const char * fp_name, const CORBA::Any & fp_settings, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::FPError, AVStreams::notSupported)); - // use the specified flow protocol for this flow. + /// pushes an event , to be handled by the application. virtual void push_event (const AVStreams::streamEvent & the_event, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException)); - // pushes an event , to be handled by the application. + /// connect 2 Flow Devices. virtual CORBA::Boolean connect_devs (AVStreams::FDev_ptr a_party, AVStreams::FDev_ptr b_party, AVStreams::QoS & the_qos, @@ -1071,8 +1098,8 @@ public: AVStreams::streamOpFailed, AVStreams::streamOpDenied, AVStreams::QoSRequestFailed)); - // connect 2 Flow Devices. + /// Connect a flow producer and consumer under this flow connection. virtual CORBA::Boolean connect (AVStreams::FlowProducer_ptr flow_producer, AVStreams::FlowConsumer_ptr flow_consumer, AVStreams::QoS & the_qos, @@ -1081,32 +1108,31 @@ public: AVStreams::formatMismatch, AVStreams::FEPMismatch, AVStreams::alreadyConnected)); - // Connect a flow producer and consumer under this flow connection. + /// disconnect this flow connection. virtual CORBA::Boolean disconnect (CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException)); - // disconnect this flow connection. + /// adds the producer to this flow connection. virtual CORBA::Boolean add_producer (AVStreams::FlowProducer_ptr flow_producer, AVStreams::QoS & the_qos, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::alreadyConnected, AVStreams::notSupported)); - // adds the producer to this flow connection. + /// adds a consumer to this flow connection. virtual CORBA::Boolean add_consumer (AVStreams::FlowConsumer_ptr flow_consumer, AVStreams::QoS & the_qos, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::alreadyConnected)); - // adds a consumer to this flow connection. + /// drops a flow endpoint from the flow. virtual CORBA::Boolean drop (AVStreams::FlowEndPoint_ptr target, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::notConnected)); - // drops a flow endpoint from the flow. int set_mcast_addr (ACE_CString addr,u_short port); void set_protocol (const char *protocol); @@ -1116,15 +1142,15 @@ protected: typedef ACE_Unbounded_Set<AVStreams::FlowConsumer_ptr> FlowConsumer_Set; typedef ACE_Unbounded_Set_Iterator<AVStreams::FlowConsumer_ptr> FlowConsumer_SetItor; + /// The multicast address returned by the producer. FlowProducer_Set flow_producer_set_; FlowConsumer_Set flow_consumer_set_; CORBA::String_var fp_name_; CORBA::Any fp_settings_; CORBA::String_var producer_address_; - // The multicast address returned by the producer. + /// IP Multicasting is used. int ip_multicast_; - // IP Multicasting is used. TAO_MCastConfigIf *mcastconfigif_i_; AVStreams::MCastConfigIf_var mcastconfigif_; u_short mcast_port_; @@ -1132,20 +1158,22 @@ protected: CORBA::String_var protocol_; }; +/** + * @class TAO_FlowEndPoint + * @brief This class is used per flow e.g video flow and an audio flow + * to encapsulate the transport details. + */ class TAO_AV_Export TAO_FlowEndPoint : public virtual POA_AVStreams::FlowEndPoint, public virtual TAO_PropertySet, public virtual PortableServer::RefCountServantBase, public virtual TAO_Base_StreamEndPoint { - // = DESCRIPTION - // This class is used per flow e.g video flow and an audio flow - // to encapuslate the transport details. public: + ///default constructor. TAO_FlowEndPoint (void); - //default constructor. TAO_FlowEndPoint (const char *flowname, AVStreams::protocolSpec &protocols, @@ -1163,34 +1191,34 @@ public: virtual int set_protocol_object (const char *flowname, TAO_AV_Protocol_Object *object); + /// lock the flow endpoint for a particular flow. virtual CORBA::Boolean lock (CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException)); - // lock the flow endpoint for a particular flow. + /// unlock the flow endpoint for subsequent use. virtual void unlock (CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException)); - // unlock the flow endpoint for subsequent use. + /// destroy this flow. virtual void destroy (CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException)); - // destroy this flow. + /// get method for the related streamendpoint under which this + /// flowendpoint is. virtual AVStreams::StreamEndPoint_ptr related_sep(CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException)); - // get method for the related streamendpoint under which this - // flowendpoint is. + /// set method for the related streamendpoint under which this + /// flowendpoint is. virtual void related_sep (AVStreams::StreamEndPoint_ptr related_sep, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException)); - // set method for the related streamendpoint under which this - // flowendpoint is. virtual AVStreams::FlowConnection_ptr related_flow_connection(CORBA::Environment &env = CORBA::Environment::default_environment ()) @@ -1198,52 +1226,53 @@ public: // accessor for the related flow connection attribute. + /// set method for the related flow connection attribute. virtual void related_flow_connection (AVStreams::FlowConnection_ptr related_flow_connection, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException)); - // set method for the related flow connection attribute. + /// returns the other flowendpoint to which this is connected. virtual AVStreams::FlowEndPoint_ptr get_connected_fep (CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::notConnected, AVStreams::notSupported)); - // returns the other flowendpoint to which this is connected. + //// use the specified flow protocol. virtual CORBA::Boolean use_flow_protocol (const char * fp_name, const CORBA::Any & fp_settings, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::FPError, AVStreams::notSupported)); - /// use the specified flow protocol. + /// sets the data format. virtual void set_format (const char * format, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::notSupported)); - // sets the data format. + /// sets the device parameters. virtual void set_dev_params (const CosPropertyService::Properties & new_settings, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::PropertyException, AVStreams::streamOpFailed)); - // sets the device parameters. + /// sets the list of protocols to be used. virtual void set_protocol_restriction (const AVStreams::protocolSpec & the_spec, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::notSupported)); - // sets the list of protocols to be used. + /// checks whether the passed flowendpoint is compatible with this. virtual CORBA::Boolean is_fep_compatible (AVStreams::FlowEndPoint_ptr fep, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::formatMismatch, AVStreams::deviceQosMismatch)); - // checks whether the passed flowendpoint is compatible with this. + /// sets the peer flowendpoint. virtual CORBA::Boolean set_peer (AVStreams::FlowConnection_ptr the_fc, AVStreams::FlowEndPoint_ptr the_peer_fep, AVStreams::QoS & the_qos, @@ -1251,8 +1280,8 @@ public: ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::QoSRequestFailed, AVStreams::streamOpFailed)); - // sets the peer flowendpoint. + /// sets the multicast peer flowendpoint, not implemented. virtual CORBA::Boolean set_Mcast_peer (AVStreams::FlowConnection_ptr the_fc, AVStreams::MCastConfigIf_ptr a_mcastconfigif, AVStreams::QoS & the_qos, @@ -1260,9 +1289,13 @@ public: CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::QoSRequestFailed)); - // sets the multicast peer flowendpoint, not implemented. + /** + * This should be implemented in both the FlowProducer and consumer and hence is + * pure virtual since we need to know the role of the flowendpoint to create appropriate + * protocol objects. eg. in SFP to create Producer Object/ Consumer Object. + */ virtual CORBA::Boolean connect_to_peer (AVStreams::QoS & the_qos, const char * address, const char * use_flow_protocol, @@ -1272,10 +1305,8 @@ public: AVStreams::failedToConnect, AVStreams::FPError, AVStreams::QoSRequestFailed)) = 0; - // This should be implemented in both the FlowProducer and consumer and hence is - // pure virtual since we need to know the role of the flowendpoint to create appropriate - // protocol objects. eg. in SFP to create Producer Object/ Consumer Object. + /// connect to the peer endpoint. virtual CORBA::Boolean connect_to_peer_i (TAO_FlowSpec_Entry::Role role, AVStreams::QoS & the_qos, const char * address, @@ -1286,8 +1317,12 @@ public: AVStreams::failedToConnect, AVStreams::FPError, AVStreams::QoSRequestFailed)); - // connect to the peer endpoint. + /** + * This should be implemented in both the FlowProducer and consumer and hence is + * pure virtual since we need to know the role of the flowendpoint to create appropriate + * protocol objects. eg. in SFP to create Producer Object/ Consumer Object. + */ virtual char * go_to_listen (AVStreams::QoS & the_qos, CORBA::Boolean is_mcast, AVStreams::FlowEndPoint_ptr peer, @@ -1298,10 +1333,8 @@ public: AVStreams::failedToListen, AVStreams::FPError, AVStreams::QoSRequestFailed)) = 0; - // This should be implemented in both the FlowProducer and consumer and hence is - // pure virtual since we need to know the role of the flowendpoint to create appropriate - // protocol objects. eg. in SFP to create Producer Object/ Consumer Object. + /// listen request from the peer. virtual char * go_to_listen_i (TAO_FlowSpec_Entry::Role role, AVStreams::QoS & the_qos, CORBA::Boolean is_mcast, @@ -1314,29 +1347,28 @@ public: AVStreams::FPError, AVStreams::QoSRequestFailed)); - // listen request from the peer. protected: + /// The related streamendpoint. AVStreams::StreamEndPoint_var related_sep_; - // The related streamendpoint. + /// The related flow connection reference AVStreams::FlowConnection_var related_flow_connection_; - // The related flow connection reference + /// The peer flowendpoint reference. AVStreams::FlowEndPoint_var peer_fep_; - // The peer flowendpoint reference. + /// Available protocols for this flowendpoint. AVStreams::protocolSpec protocols_; - // Available protocols for this flowendpoint. + /// Address information for the protocols. AVStreams::protocolSpec protocol_addresses_; - // Address information for the protocols. + /// The multicast peer endpoint. AVStreams::MCastConfigIf_var mcast_peer_; - // The multicast peer endpoint. + /// Lock. CORBA::Boolean lock_; - // Lock. CORBA::String_var format_; CORBA::String_var flowname_; @@ -1351,31 +1383,33 @@ class TAO_AV_Export TAO_FlowProducer: public virtual PortableServer::RefCountServantBase { public: + /// default constructor TAO_FlowProducer (void); - // default constructor TAO_FlowProducer (const char *flowname, AVStreams::protocolSpec protocols, const char *format); + /** + * get the reverse channel, to be used for feedback for protocols like UDP. + * @@Naga: In the spec this is defined in the TAO_FlowProducer but it seems more reasonable for this + * to be in a FlowEndPoint since any of the flowendpoints can be made to listen. So in the case of + * UDP if the producer is listening and the consumer connects (logically) then the producer needs to + * know the reverse channel on its peer fep to send data to. + */ virtual char * get_rev_channel (const char * pcol_name, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException)); - // get the reverse channel, to be used for feedback for protocols like UDP. - // @@Naga: In the spec this is defined in the TAO_FlowProducer but it seems more reasonable for this - // to be in a FlowEndPoint since any of the flowendpoints can be made to listen. So in the case of - // UDP if the producer is listening and the consumer connects (logically) then the producer needs to - // know the reverse channel on its peer fep to send data to. + /// stop this flow, to be overridden by the application. virtual void stop (CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException)); - // stop this flow, to be overridden by the application. + /// start this flow, to be overridden by the application. virtual void start (CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException)); - // start this flow, to be overridden by the application. virtual char * go_to_listen (AVStreams::QoS & the_qos, CORBA::Boolean is_mcast, @@ -1398,6 +1432,7 @@ public: AVStreams::FPError, AVStreams::QoSRequestFailed)); + /// connect to the multicast address, not implemented. virtual char * connect_mcast (AVStreams::QoS & the_qos, CORBA::Boolean_out is_met, const char * address, @@ -1409,23 +1444,22 @@ public: AVStreams::FPError, AVStreams::QoSRequestFailed)); - // connect to the multicast address, not implemented. + /// sets the public key to be used for encryption of the data. virtual void set_key (const AVStreams::key & the_key, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException)); - // sets the public key to be used for encryption of the data. + /// sets the source id of this flow producer so that it can be used + /// to distinguish this producer from others in the multicast case. virtual void set_source_id (CORBA::Long source_id, CORBA::Environment &env =CORBA::Environment::default_environment()) ACE_THROW_SPEC ((CORBA::SystemException)); - // sets the source id of this flow producer so that it can be used - // to distinguish this producer from others in the multicast case. protected: + /// source id of this producer. CORBA::Long source_id_; - // source id of this producer. CORBA::String_var peer_address_; }; @@ -1435,22 +1469,22 @@ class TAO_AV_Export TAO_FlowConsumer : public virtual PortableServer::RefCountServantBase { public: + /// default constructor. TAO_FlowConsumer (void); - // default constructor. TAO_FlowConsumer (const char *flowname, AVStreams::protocolSpec protocols, const char *format); + /// stop this flow, to be overridden by the application. virtual void stop (CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException)); - // stop this flow, to be overridden by the application. + /// start this flow, to be overridden by the application. virtual void start (CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException)); - // start this flow, to be overridden by the application. virtual char * go_to_listen (AVStreams::QoS & the_qos, CORBA::Boolean is_mcast, @@ -1474,20 +1508,20 @@ public: AVStreams::QoSRequestFailed)); }; - +/** + * @class TAO_MediaControl + * @brief Abstract Mediacontrol class. + * The following are to be handled by the specialized media control + * for the specific media like camera, speaker. + */ class TAO_AV_Export TAO_MediaControl :public virtual POA_AVStreams::MediaControl, public virtual PortableServer::RefCountServantBase { - // = TITLE - // Abstract Mediacontrol class. - // - // = DESCRIPTION - // The following are to be handled by the specialized media control for the specific - // media like camera,speaker. + public: + /// default constructor TAO_MediaControl (void); - // default constructor virtual AVStreams::Position get_media_position (AVStreams::PositionOrigin an_origin, AVStreams::PositionKey a_key, @@ -1523,28 +1557,33 @@ public: }; +/** + * @class TAO_AV_QoS + * @brief Class for getting and setting the QoS characteristics of + * an AV Stream. + */ class TAO_AV_Export TAO_AV_QoS { public: + /// constructor. TAO_AV_QoS (void); - // constructor. + /// constructor taking a stream qos parameter. TAO_AV_QoS (AVStreams::streamQoS &stream_qos); - // constructor taking a stream qos parameter. + /// sets the maps with the QoS paramter. int set (AVStreams::streamQoS &stream_qos); - // sets the maps with the QoS paramter. + /// gets the flow_qos. int get_flow_qos (const char *flowname,AVStreams::QoS &flow_qos); - // gets the flow_qos. + /// converts the application level QoS to Network-level QoS. int convert (AVStreams::streamQoS &network_qos); - // converts the application level QoS to Network-level QoS. protected: + /// Stream Qos. AVStreams::streamQoS stream_qos_; - // Stream Qos. ACE_Hash_Map_Manager<TAO_String_Hash_Key,AVStreams::QoS,ACE_Null_Mutex> qos_map_; }; diff --git a/TAO/orbsvcs/orbsvcs/AV/AV_Core.h b/TAO/orbsvcs/orbsvcs/AV/AV_Core.h index 8dd12e99817..cc0e297c3c9 100644 --- a/TAO/orbsvcs/orbsvcs/AV/AV_Core.h +++ b/TAO/orbsvcs/orbsvcs/AV/AV_Core.h @@ -1,20 +1,16 @@ /* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// ORBSVCS (AVStreams) -// -// = FILENAME -// AV_Core.h -// -// = AUTHOR -// Nagarajan Surendran <naga@cs.wustl.edu> -// -// -// ============================================================================ + +//============================================================================= +/** + * @file AV_Core.h + * + * $Id$ + * + * @author Nagarajan Surendran <naga@cs.wustl.edu> + */ +//============================================================================= + #ifndef TAO_AV_CORE_H #define TAO_AV_CORE_H @@ -45,7 +41,11 @@ typedef ACE_Unbounded_Set_Iterator<TAO_AV_Transport_Item*> TAO_AV_TransportFacto typedef ACE_Unbounded_Set<TAO_AV_Flow_Protocol_Item*> TAO_AV_Flow_ProtocolFactorySet; typedef ACE_Unbounded_Set_Iterator<TAO_AV_Flow_Protocol_Item*> TAO_AV_Flow_ProtocolFactorySetItor; - +/** + * @class TAO_AV_Core + * @brief This class encapsulates access to the TAO AV Core's resources + * and its state. + */ class TAO_AV_Export TAO_AV_Core { public: @@ -68,11 +68,11 @@ public: TAO_AV_SFP_UDP_MCAST = 11 }; + /// Default constructor. TAO_AV_Core (void); - // Default constructor. + /// Destructor. ~TAO_AV_Core (void); - // Destructor. int init (CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, @@ -90,18 +90,18 @@ public: int init_transport_factories (void); int init_flow_protocol_factories (void); + /// = Get the acceptor registry TAO_AV_Acceptor *get_acceptor (const char *flowname); TAO_AV_Connector *get_connector (const char *flowname); TAO_AV_Connector_Registry *connector_registry (void); TAO_FlowSpec_Entry *get_flow_spec_entry (TAO_AV_FlowSpecSet &flow_spec_set, const char *flowname); - // = Get the acceptor registry TAO_AV_Acceptor_Registry *acceptor_registry (void); // = Get the protocol factories + /// = Set/get the <ACE_Reactor>. TAO_AV_Flow_ProtocolFactorySet *flow_protocol_factories (void); TAO_AV_TransportFactorySet *transport_factories (void); - // = Set/get the <ACE_Reactor>. void reactor (ACE_Reactor *r); ACE_Reactor *reactor (void); CORBA::ORB_ptr orb (void); @@ -113,19 +113,19 @@ public: static char *get_flowname (const char *flow_spec_entry_str); protected: + /// The connector registry which all active connecters must register + /// themselves with. TAO_AV_Connector_Registry *connector_registry_; - // The connector registry which all active connecters must register - // themselves with. + /// The registry which maintains a list of acceptor factories for each + /// loaded protocol. TAO_AV_Acceptor_Registry *acceptor_registry_; - // The registry which maintains a list of acceptor factories for each - // loaded protocol. + /// Pointer to the list of transports loaded into this AV_Core instance. TAO_AV_TransportFactorySet transport_factories_; - // Pointer to the list of transports loaded into this AV_Core instance. + /// Pointer to the list of flow protocol loaded into this AV_Core instance. TAO_AV_Flow_ProtocolFactorySet flow_protocol_factories_; - // Pointer to the list of flow protocol loaded into this AV_Core instance. ACE_Reactor *reactor_; CORBA::ORB_var orb_; diff --git a/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy.h b/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy.h index d7f1af03f38..57038d447f8 100644 --- a/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy.h +++ b/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy.h @@ -1,20 +1,16 @@ /* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// ORBSVCS AVStreams -// -// = FILENAME -// Endpoint_Strategy.h -// -// = AUTHOR -// Sumedh Mungee <sumedh@cs.wustl.edu> -// -// -// ============================================================================ + +//============================================================================= +/** + * @file Endpoint_Strategy.h + * + * $Id$ + * + * @author Sumedh Mungee <sumedh@cs.wustl.edu> + */ +//============================================================================= + #ifndef TAO_AV_ENDPOINT_STRATEGY_H #define TAO_AV_ENDPOINT_STRATEGY_H @@ -29,138 +25,149 @@ # pragma warning (disable : 4250) #endif /* _MSC_VER */ +/** + * @class TAO_AV_Endpoint_Strategy + * + * Base class to define various endpoint strategies + * used by the MMDevice to create the Endpoint and Vdev + */ class TAO_AV_Export TAO_AV_Endpoint_Strategy { - // = DESCRIPTION - // Base class to define various endpoint strategies - // used by the MMDevice to create the Endpoint and Vdev public: + /// Constructor TAO_AV_Endpoint_Strategy (void); - // Constructor + /// Destructor virtual ~TAO_AV_Endpoint_Strategy (void); - // Destructor + /// Called by the MMDevice, when it needs to create an A type endpoint virtual int create_A (AVStreams::StreamEndPoint_A_ptr &stream_endpoint, AVStreams::VDev_ptr &vdev, CORBA::Environment &env); - // Called by the MMDevice, when it needs to create an A type endpoint + /// Called by the MMDevice, when it needs to create an B type endpoint virtual int create_B (AVStreams::StreamEndPoint_B_ptr &stream_endpoint, AVStreams::VDev_ptr &vdev, CORBA::Environment &env); - // Called by the MMDevice, when it needs to create an B type endpoint protected: + /// The "A" stream endpoint AVStreams::StreamEndPoint_A_ptr stream_endpoint_a_; - // The "A" stream endpoint + /// The "B" stream endpoint AVStreams::StreamEndPoint_B_ptr stream_endpoint_b_; - // The "B" stream endpoint + /// The vdev AVStreams::VDev_ptr vdev_; - // The vdev }; // ---------------------------------------------------------------------- - +/** + * @class TAO_AV_Endpoint_Strategy + * @brief Process-based strategy for creating endpoints. + * Abstract base class. + */ class TAO_AV_Export TAO_AV_Endpoint_Process_Strategy : public TAO_AV_Endpoint_Strategy { - // = DESCRIPTION - // Process-based strategy for creating endpoints - // Abstract base class. public: + /// Constructor. The process_options contain the name and arguments + /// for the process to be created TAO_AV_Endpoint_Process_Strategy (ACE_Process_Options *process_options); - // Constructor. The process_options contain the name and arguments - // for the process to be created + /// Destructor. virtual ~TAO_AV_Endpoint_Process_Strategy (void); - // Destructor. + /// creates a new child process, and waits on a semaphore + /// until the child process has finished creating the endpoints virtual int activate (void); - // creates a new child process, and waits on a semaphore - // until the child process has finished creating the endpoints protected: + /// Bind to the naming service virtual int bind_to_naming_service (CORBA::Environment &env); - // Bind to the naming service + /** + * Get the object reference for the newly created stream + * endpoint (which will be in the child process) + * Subclasses will define the functionality for this + */ virtual int get_stream_endpoint (CORBA::Environment &env) = 0; - // Get the object reference for the newly created stream - // endpoint (which will be in the child process) - // Subclasses will define the functionality for this + /// Get the Vdev object reference for the newly created + /// endpoint virtual int get_vdev (CORBA::Environment &env); - // Get the Vdev object reference for the newly created - // endpoint + /// Naming context CosNaming::NamingContext_var naming_context_; - // Naming context + /// Name and arguments for the process to be created ACE_Process_Options *process_options_; - // Name and arguments for the process to be created + /// name of this host used for resolving unique names. char host_[MAXHOSTNAMELEN]; - // name of this host used for resolving unique names. + /// My child's process id. pid_t pid_; - // My child's process id. }; // ---------------------------------------------------------------------- +/** + * @class TAO_AV_Endpoint_Process_Strategy_A + * @brief Process-based strategy to create "A" type endpoints + */ class TAO_AV_Export TAO_AV_Endpoint_Process_Strategy_A : public TAO_AV_Endpoint_Process_Strategy { - // = DESCRIPTION - // Process-based strategy to create "A" type endpoints public: + /// Constructor TAO_AV_Endpoint_Process_Strategy_A (ACE_Process_Options *process_options); - // Constructor + /// Destructor. virtual ~TAO_AV_Endpoint_Process_Strategy_A (void); - // Destructor. protected: + /// Creates an "A" type stream endpoint, and a vdev virtual int create_A (AVStreams::StreamEndPoint_A_ptr &stream_endpoint, AVStreams::VDev_ptr &vdev, CORBA::Environment &env); - // Creates an "A" type stream endpoint, and a vdev + /// Gets the "A" type stream endpoint from the child process virtual int get_stream_endpoint (CORBA::Environment &env); - // Gets the "A" type stream endpoint from the child process }; // ---------------------------------------------------------------------- +/** + * @class TAO_AV_Endpoint_Process_Strategy_B + * @brief Process-based strategy to create "B" type endpoints + */ class TAO_AV_Export TAO_AV_Endpoint_Process_Strategy_B : public TAO_AV_Endpoint_Process_Strategy { - // = DESCRIPTION - // Process-based strategy to create "B" type endpoints + public: + /// Constructor TAO_AV_Endpoint_Process_Strategy_B (ACE_Process_Options *process_options); - // Constructor + /// Destructor. virtual ~TAO_AV_Endpoint_Process_Strategy_B (void); - // Destructor. protected: + /// Creates a "B" type stream endpoint, and a vdev virtual int create_B (AVStreams::StreamEndPoint_B_ptr &stream_endpoint, AVStreams::VDev_ptr &vdev, CORBA::Environment &env); - // Creates a "B" type stream endpoint, and a vdev + /// Gets the object reference of the "B" type streamendpoint. virtual int get_stream_endpoint (CORBA::Environment &env); - // Gets the object reference of the "B" type streamendpoint. }; diff --git a/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.h b/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.h index aba7bf15931..bc1a20f5b10 100644 --- a/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.h +++ b/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.h @@ -1,21 +1,17 @@ /* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// ORBSVCS AVStreams -// -// = FILENAME -// Endpoint_Strategy_T.h -// -// = AUTHOR -// Sumedh Mungee <sumedh@cs.wustl.edu> -// Nagarajan Surendran <naga@cs.wustl.edu> -// -// -// ============================================================================ + +//============================================================================= +/** + * @file Endpoint_Strategy_T.h + * + * $Id$ + * + * @author Sumedh Mungee <sumedh@cs.wustl.edu> + * @author Nagarajan Surendran <naga@cs.wustl.edu> + */ +//============================================================================= + #ifndef TAO_AV_ENDPOINT_STRATEGY_T_H @@ -24,47 +20,49 @@ #include "Endpoint_Strategy.h" +/** + * @class TAO_AV_Endpoint_Reactive_Strategy + * @brief Reactive strategy base class + */ template <class T_StreamEndpoint, class T_VDev , class T_MediaCtrl> class TAO_AV_Export TAO_AV_Endpoint_Reactive_Strategy : public TAO_AV_Endpoint_Strategy { - // = DESCRIPTION - // Reactive strategy base class protected: // Constructor + /// Constructor TAO_AV_Endpoint_Reactive_Strategy (void); - // Constructor + /// Destructor. virtual ~TAO_AV_Endpoint_Reactive_Strategy (void); - // Destructor. + /// creates and activates the streamendpoint, vdev, and mediacontrol virtual int activate (void); - // creates and activates the streamendpoint, vdev, and mediacontrol + /// activates the stream_endpoint with the POA virtual int activate_stream_endpoint (CORBA::Environment &env) = 0; - // activates the stream_endpoint with the POA + /// activates the vdev with the POA virtual int activate_vdev (CORBA::Environment &env); - // activates the vdev with the POA + /// activates the media controller with the POA virtual int activate_mediactrl (CORBA::Environment &env); - // activates the media controller with the POA + /// Bridge method to create a vdev, a la Acceptor. Applications + /// can override this virtual int make_vdev (T_VDev *&vdev); - // Bridge method to create a vdev, a la Acceptor. Applications - // can override this + /// Bridge method to create a stream_endpoint, a la Acceptor. Applications + /// can override this virtual int make_stream_endpoint (T_StreamEndpoint *&stream_endpoint); - // Bridge method to create a stream_endpoint, a la Acceptor. Applications - // can override this + /// Bridge method to create a media_ctrl, a la Acceptor. Applications + /// can override this virtual int make_mediactrl (T_MediaCtrl *&media_ctrl); - // Bridge method to create a media_ctrl, a la Acceptor. Applications - // can override this char* activate_with_poa (PortableServer::Servant servant, CORBA::Environment &env); @@ -76,144 +74,155 @@ protected: }; // ---------------------------------------------------------------------- +/** + * @class TAO_AV_Endpoint_Reactive_Strategy_A + * @brief Reactive strategy + */ template <class T_StreamEndpoint, class T_VDev , class T_MediaCtrl> class TAO_AV_Export TAO_AV_Endpoint_Reactive_Strategy_A : public TAO_AV_Endpoint_Reactive_Strategy<T_StreamEndpoint, T_VDev , T_MediaCtrl> { - // = DESCRIPTION - // Reactive strategy public: TAO_AV_Endpoint_Reactive_Strategy_A (void); + /// Constructor int init (CORBA::ORB_ptr orb, PortableServer::POA_ptr poa); - // Constructor + /// Destructor. virtual ~TAO_AV_Endpoint_Reactive_Strategy_A (void); - // Destructor. + /// Overrides the base class stream_endpoint activator, to activate + /// an "A" type endpoint virtual int activate_stream_endpoint (CORBA::Environment &env); - // Overrides the base class stream_endpoint activator, to activate - // an "A" type endpoint + /// Called by the MMDevice, when it needs to create an A type endpoint virtual int create_A (AVStreams::StreamEndPoint_A_ptr &stream_endpoint, AVStreams::VDev_ptr &vdev, CORBA::Environment &env); - // Called by the MMDevice, when it needs to create an A type endpoint }; // ---------------------------------------------------------------------- +/** + * @class TAO_AV_Endpoint_Reactive_Strategy_B + * @brief Reactive strategy + */ template <class T_StreamEndpoint, class T_Vdev , class T_MediaCtrl> class TAO_AV_Export TAO_AV_Endpoint_Reactive_Strategy_B : public TAO_AV_Endpoint_Reactive_Strategy <T_StreamEndpoint, T_Vdev, T_MediaCtrl> { - // = DESCRIPTION - // Reactive strategy + public: + /// Constructor TAO_AV_Endpoint_Reactive_Strategy_B (void); - // Constructor + /// Destructor. virtual ~TAO_AV_Endpoint_Reactive_Strategy_B (void); - // Destructor. int init (CORBA::ORB_ptr orb, PortableServer::POA_ptr poa); + /// Overrides the base class stream_endpoint activator, to activate + /// a "B" type endpoint virtual int activate_stream_endpoint (CORBA::Environment &env); - // Overrides the base class stream_endpoint activator, to activate - // a "B" type endpoint + /// Called by the MMDevice, when it needs to create a B type endpoint virtual int create_B (AVStreams::StreamEndPoint_B_ptr &stream_endpoint, AVStreams::VDev_ptr &vdev, CORBA::Environment &env); - // Called by the MMDevice, when it needs to create a B type endpoint }; // ---------------------------------------------------------------------- +/** + * @class TAO_AV_Child_Process + * + * @brief Helper class for the child process created in + * TAO_AV_Endpoint_Process_Strategy + */ template <class T_StreamEndpoint, class T_VDev , class T_MediaCtrl> class TAO_AV_Export TAO_AV_Child_Process { - // = DESCRIPTION - // Helper class for the child process created in TAO_AV_Endpoint_Process_Strategy public: + /// Constructor TAO_AV_Child_Process (); - // Constructor + /// Destructor virtual ~TAO_AV_Child_Process (); - // Destructor + /// Initializes the ORB, creates and activates the + /// T_StreamEndpoint, T_VDev, T_MediaCtrl in the POA int init (int argc, char **argv, CORBA::ORB_ptr orb, PortableServer::POA_ptr poa); - // Initializes the ORB, creates and activates the - // T_StreamEndpoint, T_VDev, T_MediaCtrl in the POA + /// runs the ORB event loop int run (ACE_Time_Value *tv = 0); - // runs the ORB event loop protected: + /** + * Creates the objects and inserts them into the Naming + * Service, so the parent can pick the IOR's and + * return them to the client + */ int activate_objects (int argc, char **argv, CORBA::Environment &env); - // Creates the objects and inserts them into the Naming - // Service, so the parent can pick the IOR's and - // return them to the client + ///activate the servant with the poa char* activate_with_poa (PortableServer::Servant servant, CORBA::Environment &env); - //activate the servant with the poa + /// Removes the vdev and streamendpoint names from the naming service. int unbind_names (void); - // Removes the vdev and streamendpoint names from the naming service. + /// Binds to the naming service int bind_to_naming_service (CORBA::Environment &env); - // Binds to the naming service + /// Registers vdev with the naming service int register_vdev (CORBA::Environment &env); - // Registers vdev with the naming service + /// Registers stream_endpoint with the naming service int register_stream_endpoint (CORBA::Environment &env); - // Registers stream_endpoint with the naming service + /// Releases the semaphore on which the parent is waiting on int release_semaphore (); - // Releases the semaphore on which the parent is waiting on + /// Bridge method to create a vdev, a la Acceptor. Applications + /// can override this virtual int make_vdev (T_VDev *&vdev); - // Bridge method to create a vdev, a la Acceptor. Applications - // can override this + /// Bridge method to create a stream_endpoint, a la Acceptor. Applications + /// can override this virtual int make_stream_endpoint (T_StreamEndpoint *&stream_endpoint); - // Bridge method to create a stream_endpoint, a la Acceptor. Applications - // can override this + /// Bridge method to create a media_ctrl, a la Acceptor. Applications + /// can override this virtual int make_mediactrl (T_MediaCtrl *&media_ctrl); - // Bridge method to create a media_ctrl, a la Acceptor. Applications - // can override this + /// The root Naming Context of the TAO naming service CosNaming::NamingContext_var naming_context_; - // The root Naming Context of the TAO naming service + /// Name of the vdev CosNaming::Name vdev_name_; - // Name of the vdev + /// Name of the stream_endpoint CosNaming::Name stream_endpoint_name_; - // Name of the stream_endpoint + /// The stream endpoint member T_StreamEndpoint *stream_endpoint_; - // The stream endpoint member + /// The virtual device T_VDev *vdev_; - // The virtual device + /// Media controller T_MediaCtrl *media_ctrl_; - // Media controller + /// pid of this process pid_t pid_; - // pid of this process + /// Name of the host. char host_[MAXHOSTNAMELEN]; - // Name of the host. CORBA::ORB_ptr orb_; @@ -222,36 +231,40 @@ protected: }; // ---------------------------------------------------------------------- - +/** + * @class TAO_AV_Child_Process_A + * @brief Helper class for the child process created in TAO_AV_Child_Process + */ template <class T_StreamEndpoint, class T_VDev , class T_MediaCtrl> class TAO_AV_Export TAO_AV_Child_Process_A : public TAO_AV_Child_Process <T_StreamEndpoint, T_VDev, T_MediaCtrl> { - // = DESCRIPTION - // Helper class for the child process created in TAO_AV_Child_Process public: + /// Constructor. TAO_AV_Child_Process_A (void); - // Constructor. + /// Destructor. virtual ~TAO_AV_Child_Process_A (void); - // Destructor. }; // ---------------------------------------------------------------------- +/** + * @class TAO_AV_Child_Process_B + * @brief Helper class for the child process created in TAO_AV_Child_Process + */ template <class T_StreamEndpoint, class T_VDev , class T_MediaCtrl> class TAO_AV_Export TAO_AV_Child_Process_B : public TAO_AV_Child_Process <T_StreamEndpoint, T_VDev, T_MediaCtrl> { - // = DESCRIPTION - // Helper class for the child process created in TAO_AV_Child_Process + public: + /// Constructor. TAO_AV_Child_Process_B (void); - // Constructor. + /// Destructor. virtual ~TAO_AV_Child_Process_B (void); - // Destructor. }; #if defined (ACE_TEMPLATES_REQUIRE_SOURCE) diff --git a/TAO/orbsvcs/orbsvcs/AV/Flows_T.h b/TAO/orbsvcs/orbsvcs/AV/Flows_T.h index ff5debd734c..2277277f4cd 100644 --- a/TAO/orbsvcs/orbsvcs/AV/Flows_T.h +++ b/TAO/orbsvcs/orbsvcs/AV/Flows_T.h @@ -1,20 +1,16 @@ /* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// ORBSVCS AVStreams -// -// = FILENAME -// Flows_T.h -// -// = AUTHOR -// Nagarajan Surendran <naga@cs.wustl.edu> -// -// -// ============================================================================ + +//============================================================================= +/** + * @file Flows_T.h + * + * $Id$ + * + * @author Nagarajan Surendran <naga@cs.wustl.edu> + */ +//============================================================================= + #ifndef TAO_AV_FLOWS_T_H #define TAO_AV_FLOWS_T_H @@ -22,6 +18,12 @@ #include "AVStreams_i.h" +/** + * @class TAO_FDev + * @brief Implementation of the AV/Streams Flow Device. + * A FlowConnection is used to bind FDevs for flows, + * much like how a StreamCtrl is used to bind MMDevices for streams. + */ template <class T_Producer, class T_Consumer> class TAO_AV_Export TAO_FDev : public virtual POA_AVStreams::FDev, @@ -29,18 +31,19 @@ class TAO_AV_Export TAO_FDev : public virtual PortableServer::RefCountServantBase { public: + /// default constructor TAO_FDev (void); - // default constructor + /// constructor taking a flowname. TAO_FDev (const char *flowname); - // constructor taking a flowname. + /// Destructor.. ~TAO_FDev (void); - // Destructor.. + /// set/get the flowname. + /// create a flow producer object. const char *flowname (void); void flowname (const char *flowname); - // set/get the flowname. AVStreams::FlowProducer_ptr create_producer (AVStreams::FlowConnection_ptr the_requester, AVStreams::QoS & the_qos, CORBA::Boolean_out met_qos, @@ -51,16 +54,16 @@ public: AVStreams::streamOpDenied, AVStreams::notSupported, AVStreams::QoSRequestFailed)); - // create a flow producer object. + /// bridge method for the application to override the producer object + /// creation. Default implementation creates a TAO_FlowProducer. virtual AVStreams::FlowProducer_ptr make_producer (AVStreams::FlowConnection_ptr the_requester, AVStreams::QoS & the_qos, CORBA::Boolean_out met_qos, char *& named_fdev, CORBA::Environment &env = CORBA::Environment::default_environment ()); - // bridge method for the application to override the producer object - // creation. Default implementation creates a TAO_FlowProducer. + /// create a flow consumer object. virtual AVStreams::FlowConsumer_ptr create_consumer (AVStreams::FlowConnection_ptr the_requester, AVStreams::QoS & the_qos, CORBA::Boolean_out met_qos, @@ -71,16 +74,16 @@ public: AVStreams::streamOpDenied, AVStreams::notSupported, AVStreams::QoSRequestFailed)); - // create a flow consumer object. + /// bridge method for the application to override the consumer object + /// creation. Default implementation creates a TAO_FlowConsumer. virtual AVStreams::FlowConsumer_ptr make_consumer (AVStreams::FlowConnection_ptr the_requester, AVStreams::QoS & the_qos, CORBA::Boolean_out met_qos, char *& named_fdev, CORBA::Environment &env = CORBA::Environment::default_environment ()); - // bridge method for the application to override the consumer object - // creation. Default implementation creates a TAO_FlowConsumer. + /// bind this FDev with another FDev. virtual AVStreams::FlowConnection_ptr bind (AVStreams::FDev_ptr peer_device, AVStreams::QoS & the_qos, CORBA::Boolean_out is_met, @@ -88,8 +91,8 @@ public: ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::streamOpFailed, AVStreams::QoSRequestFailed)); - // bind this FDev with another FDev. + /// multicast bind is not implemented yet. virtual AVStreams::FlowConnection_ptr bind_mcast (AVStreams::FDev_ptr first_peer, AVStreams::QoS & the_qos, CORBA::Boolean_out is_met, @@ -97,15 +100,14 @@ public: ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::streamOpFailed, AVStreams::QoSRequestFailed)); - // multicast bind is not implemented yet. + /// destroys this FDev. virtual void destroy (AVStreams::FlowEndPoint_ptr the_ep, const char * fdev_name, CORBA::Environment &env = CORBA::Environment::default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException, AVStreams::notSupported)); - // destroys this FDev. protected: ACE_DLList <TAO_FlowProducer> producer_list_; diff --git a/TAO/orbsvcs/orbsvcs/AV/MCast.h b/TAO/orbsvcs/orbsvcs/AV/MCast.h index dd43b45c7d0..745aaa517b4 100644 --- a/TAO/orbsvcs/orbsvcs/AV/MCast.h +++ b/TAO/orbsvcs/orbsvcs/AV/MCast.h @@ -1,20 +1,16 @@ /* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// ORBSVCS AVStreams -// -// = FILENAME -// MCast.h -// -// = AUTHOR -// Nagarajan Surendran <naga@cs.wustl.edu> -// -// -// ============================================================================ + +//============================================================================= +/** + * @file MCast.h + * + * $Id$ + * + * @author Nagarajan Surendran <naga@cs.wustl.edu> + */ +//============================================================================= + #ifndef TAO_AV_MCAST_H #define TAO_AV_MCAST_H @@ -27,14 +23,15 @@ class TAO_AV_UDP_MCast_Flow_Handler; +/** + * @class TAO_AV_UDP_MCast_Transport + * @brief A transport abstraction for Multicast dgram sockets. + * Uses the ACE_SOCK_Dgram_Mcast to send data. + */ class TAO_AV_UDP_MCast_Transport :public TAO_AV_Transport { - // = TITLE - // A transport abstraction for Multicast dgram sockets. - // - // = DESCRIPTION - // Uses the ACE_SOCK_Dgram_Mcast to send the data. + public: TAO_AV_UDP_MCast_Transport (void); @@ -48,52 +45,56 @@ public: virtual int mtu (void); + /// Write the complete Message_Block chain to the connection. virtual ACE_Addr *get_peer_addr (void); virtual ACE_Addr *get_local_addr (void); virtual ssize_t send (const ACE_Message_Block *mblk, ACE_Time_Value *s = 0); - // Write the complete Message_Block chain to the connection. + /// Write the contents of the buffer of length len to the connection. virtual ssize_t send (const char *buf, size_t len, ACE_Time_Value *s = 0); - // Write the contents of the buffer of length len to the connection. + /// Write the contents of iovcnt iovec's to the connection. virtual ssize_t send (const iovec *iov, int iovcnt, ACE_Time_Value *s = 0); - // Write the contents of iovcnt iovec's to the connection. + /// Read len bytes from into buf. virtual ssize_t recv (char *buf, size_t len, ACE_Time_Value *s = 0); - // Read len bytes from into buf. + /// Read len bytes from into buf using flags. virtual ssize_t recv (char *buf, size_t len, int flags, ACE_Time_Value *s = 0); - // Read len bytes from into buf using flags. + /// Read received data into the iovec buffers. virtual ssize_t recv (iovec *iov, int iovcnt, ACE_Time_Value *s = 0); - // Read received data into the iovec buffers. protected: TAO_AV_UDP_MCast_Flow_Handler *handler_; ACE_INET_Addr peer_addr_; ACE_INET_Addr local_addr_; }; +/** + * @class TAO_AV_UDP_MCast_Flow_Handler + * @brief Flow Handler for data sent over multicast sockets. + */ class TAO_AV_UDP_MCast_Flow_Handler :public virtual TAO_AV_Flow_Handler, public virtual ACE_Event_Handler { public: + /// Ctor + /// Dtor TAO_AV_UDP_MCast_Flow_Handler (void); - // Ctor ~TAO_AV_UDP_MCast_Flow_Handler (void); - // Dtor virtual ACE_HANDLE get_handle (void) const; virtual int handle_input (ACE_HANDLE fd); virtual int handle_timeout (const ACE_Time_Value &tv, const void *arg = 0); diff --git a/TAO/orbsvcs/orbsvcs/AV/Policy.h b/TAO/orbsvcs/orbsvcs/AV/Policy.h index c103e4ca82e..70232b64f9c 100644 --- a/TAO/orbsvcs/orbsvcs/AV/Policy.h +++ b/TAO/orbsvcs/orbsvcs/AV/Policy.h @@ -1,19 +1,16 @@ /* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// ORBSVCS AVStreams -// -// = FILENAME -// Policy.h -// -// = AUTHOR -// Nagarajan Surendran <naga@cs.wustl.edu> -// -// ============================================================================ + +//============================================================================= +/** + * @file Policy.h + * + * $Id$ + * + * @author Nagarajan Surendran <naga@cs.wustl.edu> + */ +//============================================================================= + #ifndef TAO_AV_POLICY_H #define TAO_AV_POLICY_H @@ -100,27 +97,30 @@ class TAO_AV_Protocol_Object; class TAO_AV_Transport; class TAO_AV_Flow_Handler; +/** + * @class TAO_AV_Callback + * + * @brief Callback class that the user will be implementing for receiving + * frames from the network and also for timer events. + */ class TAO_AV_Export TAO_AV_Callback { - // = TITLE - // Callback class that the user will be implementing for receiving - // frames from the network and also for timer events. public: TAO_AV_Callback (void); virtual ~TAO_AV_Callback (void); + /// Called for opening the callback. int open (TAO_AV_Protocol_Object *object, TAO_AV_Flow_Handler *handler); - // Called for opening the callback. + /// Called during Streamctrl->start. virtual int handle_start (void); - // Called during Streamctrl->start. + /// Called during Streamctrl->stop. virtual int handle_stop (void); - // Called during Streamctrl->stop. + /// Called during timeout for Flow Producers. virtual int handle_timeout (void *arg); - // Called during timeout for Flow Producers. virtual int schedule_timer (void); @@ -130,24 +130,26 @@ public: // Called when a frame arrives for a FlowConsumer. + /// address from which the frame was received. virtual int receive_control_frame (ACE_Message_Block *frame, const ACE_Addr &address = ACE_Addr::sap_any); - // address from which the frame was received. + /// Called during Streamctrl->destroy i.e tear_down of the stream virtual int handle_destroy (void); - // Called during Streamctrl->destroy i.e tear_down of the stream + /** + * Called to get the timeout. If tv is 0 then the framework stop + * calling this. This will be called during the start of the frame + * and also if schedule_timer is called to get the timeout. + */ virtual void get_timeout (ACE_Time_Value *&tv, void *&arg); - // Called to get the timeout. If tv is 0 then the framework stop - // calling this. This will be called during the start of the frame - // and also if schedule_timer is called to get the timeout. + /// Accessor to protocol object. TAO_AV_Protocol_Object *protocol_object (void); - // Accessor to protocol object. + /// get the policies for the protocol object. virtual TAO_AV_PolicyList get_policies (void); - // get the policies for the protocol object. protected: TAO_AV_Protocol_Object *protocol_object_; TAO_AV_Flow_Handler *handler_; diff --git a/TAO/orbsvcs/orbsvcs/AV/Protocol_Factory.h b/TAO/orbsvcs/orbsvcs/AV/Protocol_Factory.h index 928de0f6726..b3c3345ae70 100644 --- a/TAO/orbsvcs/orbsvcs/AV/Protocol_Factory.h +++ b/TAO/orbsvcs/orbsvcs/AV/Protocol_Factory.h @@ -1,19 +1,15 @@ /* -*- C++ -*- */ -// $Id$ -// ============================================================================ -// -// = LIBRARY -// ORBSVCS AVStreams -// -// = FILENAME -// Protocol_Factory -// -// = AUTHOR -// Nagarajan Surendran <naga@cs.wustl.edu> -// -// -// ============================================================================ +//============================================================================= +/** + * @file Protocol_Factory + * + * $Id$ + * + * @author Nagarajan Surendran <naga@cs.wustl.edu> + */ +//============================================================================= + #ifndef TAO_AV_PROTOCOL_FACTORY_T_H #define TAO_AV_PROTOCOL_FACTORY_T_H @@ -23,50 +19,54 @@ #include "Policy.h" #include "FlowSpec_Entry.h" +/** + * @class TAO_AV_Protocol_Object + * @brief + */ class TAO_AV_Protocol_Object { public: TAO_AV_Protocol_Object (void); + /// constructor. TAO_AV_Protocol_Object (TAO_AV_Callback *callback, TAO_AV_Transport *transport); - // constructor. + /// Destructor virtual ~TAO_AV_Protocol_Object (void); - // Destructor virtual int open (TAO_AV_Callback *callback, TAO_AV_Transport *transport); virtual int handle_input (void) = 0; + /// Called on a control object. virtual int handle_control_input (ACE_Message_Block *control_frame, const ACE_Addr &peer_address); - // Called on a control object. + /// set/get policies. virtual int set_policies (const TAO_AV_PolicyList &policy_list); virtual TAO_AV_PolicyList get_policies (void); - // set/get policies. + /// start/stop the flow. virtual int start (void); virtual int stop (void); - // start/stop the flow. + /// send a data frame. virtual int send_frame (ACE_Message_Block *frame, TAO_AV_frame_info *frame_info = 0) = 0; - // send a data frame. + /// send a frame in iovecs. virtual int send_frame (const iovec *iov, int iovcnt, TAO_AV_frame_info *frame_info = 0) = 0; - // send a frame in iovecs. virtual int send_frame (const char *buf, size_t len) = 0; + /// end the stream. virtual void control_object (TAO_AV_Protocol_Object *object); virtual int destroy (void) = 0; - // end the stream. TAO_AV_Transport *transport (void); protected: TAO_AV_Transport *transport_; @@ -74,13 +74,17 @@ protected: TAO_AV_Callback *callback_; }; +/** + * @class TAO_AV_Flow_Protocol_Factory + * @brief + */ class TAO_AV_Export TAO_AV_Flow_Protocol_Factory : public ACE_Service_Object { public: + /// Initialization hook. TAO_AV_Flow_Protocol_Factory (void); virtual ~TAO_AV_Flow_Protocol_Factory (void); virtual int init (int argc, char *argv[]); - // Initialization hook. virtual int match_protocol (const char *flow_string); virtual TAO_AV_Protocol_Object* make_protocol_object (TAO_FlowSpec_Entry *entry, TAO_Base_StreamEndPoint *endpoint, diff --git a/TAO/orbsvcs/orbsvcs/AV/RTCP.h b/TAO/orbsvcs/orbsvcs/AV/RTCP.h index fbfba2a6790..04beb89ec2b 100644 --- a/TAO/orbsvcs/orbsvcs/AV/RTCP.h +++ b/TAO/orbsvcs/orbsvcs/AV/RTCP.h @@ -1,5 +1,4 @@ /* -*- C++ -*- */ -// $Id$ /*- * Copyright (c) 1993-1994 The Regents of the University of California. * All rights reserved. @@ -34,19 +33,16 @@ * SUCH DAMAGE. */ -// ============================================================================ -// -// = LIBRARY -// ORBSVCS AVStreams -// -// = FILENAME -// RTCP.h -// -// = AUTHOR -// Nagarajan Surendran <naga@cs.wustl.edu> -// -// -// ============================================================================ +//============================================================================= +/** + * @file RTCP.h + * + * $Id$ + * + * @author Nagarajan Surendran <naga@cs.wustl.edu> + */ +//============================================================================= + #ifndef TAO_AV_RTCP_H #define TAO_AV_RTCP_H @@ -61,7 +57,10 @@ #include <stdlib.h> #include "RTP.h" -// TAO_AV_RTP_State +/** + * @class TAO_AV_RTP_State + * @brief Encapsulate the state of an RTP session + */ class TAO_AV_RTP_State { public: @@ -83,6 +82,11 @@ public: class TAO_AV_RTCP_Callback; class TAO_AV_SourceManager; +/** + * @class TAO_AV_RTCP + * @brief Encapsulate the header format for the Real Time Control + * Protocol (RTCP) + */ class TAO_AV_RTCP { public: @@ -193,45 +197,52 @@ public: class TAO_AV_Callback; +/** + * @class TAO_AV_RTCP_Object + * @brief TAO_AV_Protocol_Object for RTCP protocol + */ class TAO_AV_Export TAO_AV_RTCP_Object : public TAO_AV_Protocol_Object { public: + /// constructor. TAO_AV_RTCP_Object (TAO_AV_Callback *callback, TAO_AV_Transport *transport = 0); - // constructor. + /// Destructor virtual ~TAO_AV_RTCP_Object (void); - // Destructor virtual int handle_input (void); virtual int handle_control_input (ACE_Message_Block *frame, const ACE_Addr &peer_address); + /// set/get policies. virtual int set_policies (const TAO_AV_PolicyList &policy_list); - // set/get policies. + /// start/stop the flow. virtual int start (void); virtual int stop (void); - // start/stop the flow. + /// send a data frame. virtual int send_frame (ACE_Message_Block *frame, TAO_AV_frame_info *frame_info = 0); - // send a data frame. + /// send a frame in iovecs. virtual int send_frame (const iovec *iov, int iovcnt, TAO_AV_frame_info *frame_info = 0); - // send a frame in iovecs. virtual int send_frame (const char*buf, size_t len); + /// end the stream. virtual int destroy (void); - // end the stream. }; - +/** + * @class TAO_AV_Flow_Protocol_Factory + * @brief + */ class TAO_AV_Export TAO_AV_RTCP_Flow_Factory :public TAO_AV_Flow_Protocol_Factory { @@ -246,40 +257,44 @@ public: TAO_AV_Transport *transport); }; +/** + * @class TAO_AV_RTCP_Callback + * @brief TAO_AV_Callback for RTCP protocol + */ class TAO_AV_Export TAO_AV_RTCP_Callback : public TAO_AV_Callback { public: + /// RTCP callback. TAO_AV_RTCP_Callback (void); - // RTCP callback. + /// virtual destructor. virtual ~TAO_AV_RTCP_Callback (void); - // virtual destructor. + /// Called during Streamctrl->start. virtual int handle_start (void); - // Called during Streamctrl->start. + /// Called during Streamctrl->stop. virtual int handle_stop (void); - // Called during Streamctrl->stop. + /// Called during timeout for Flow Producers. virtual int handle_timeout (void *arg); - // Called during timeout for Flow Producers. + /// Called when a frame arrives for a FlowConsumer. virtual int receive_frame (ACE_Message_Block *frame, TAO_AV_frame_info *frame_info = 0, const ACE_Addr &peer_address = ACE_Addr::sap_any); - // Called when a frame arrives for a FlowConsumer. virtual int receive_control_frame (ACE_Message_Block *frame, const ACE_Addr &peer_address = ACE_Addr::sap_any); + /// Called during Streamctrl->destroy i.e tear_down of the stream + /// @@coryan:Call it handle_destroy or handle_close. virtual int handle_destroy (void); - // Called during Streamctrl->destroy i.e tear_down of the stream - // @@coryan:Call it handle_destroy or handle_close. + /// Called to get the timeout. If tv is 0 then the framework stop + /// calling this. virtual void get_timeout (ACE_Time_Value *&tv, void *&arg); - // Called to get the timeout. If tv is 0 then the framework stop - // calling this. int demux (TAO_AV_RTP::rtphdr* rh, ACE_Message_Block *data, diff --git a/TAO/orbsvcs/orbsvcs/AV/RTP.h b/TAO/orbsvcs/orbsvcs/AV/RTP.h index 3b08b618f5c..0933f13b532 100644 --- a/TAO/orbsvcs/orbsvcs/AV/RTP.h +++ b/TAO/orbsvcs/orbsvcs/AV/RTP.h @@ -34,21 +34,17 @@ * SUCH DAMAGE. */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// ORBSVCS AVStreams -// -// = FILENAME -// RTP.h -// -// = AUTHOR -// Nagarajan Surendran <naga@cs.wustl.edu> -// -// -// ============================================================================ + +//============================================================================= +/** + * @file RTP.h + * + * $Id$ + * + * @author Nagarajan Surendran <naga@cs.wustl.edu> + */ +//============================================================================= + #ifndef TAO_AV_RTP_H #define TAO_AV_RTP_H @@ -141,7 +137,10 @@ class TAO_AV_RTP_State; // TAO_AV_RTP //------------------------------------------------------------ - +/** + * @class TAO_AV_RTP + * @brief Encapsulate the Real Time Protocol (RTP) header format. + */ class TAO_AV_RTP { public: @@ -246,7 +245,10 @@ public: }; - +/** + * @class TAO_AV_Protocol_Object + * @brief TAO_AV_Protocol_object for the RTP protocol + */ class TAO_AV_RTP_Object : public TAO_AV_Protocol_Object { public: @@ -278,17 +280,21 @@ protected: CORBA::ULong ssrc_; TAO_AV_Protocol_Object *control_object_; + /// Pre-allocated memory to receive the data... ACE_Message_Block frame_; - // Pre-allocated memory to receive the data... }; +/** + * @class TAO_AV_RTP_Flow_Factory + * @brief + */ class TAO_AV_Export TAO_AV_RTP_Flow_Factory : public TAO_AV_Flow_Protocol_Factory { public: + /// Initialization hook. TAO_AV_RTP_Flow_Factory (void); virtual ~TAO_AV_RTP_Flow_Factory (void); virtual int init (int argc, char *argv[]); - // Initialization hook. virtual int match_protocol (const char *flow_string); virtual TAO_AV_Protocol_Object* make_protocol_object (TAO_FlowSpec_Entry *entry, TAO_Base_StreamEndPoint *endpoint, diff --git a/TAO/orbsvcs/orbsvcs/AV/TCP.h b/TAO/orbsvcs/orbsvcs/AV/TCP.h index 587a02f3530..44b16755b18 100644 --- a/TAO/orbsvcs/orbsvcs/AV/TCP.h +++ b/TAO/orbsvcs/orbsvcs/AV/TCP.h @@ -1,19 +1,15 @@ /* -*- C++ -*- */ -// $Id$ -// ============================================================================ -// -// = LIBRARY -// ORBSVCS AVStreams -// -// = FILENAME -// TCP.h -// -// = AUTHOR -// Nagarajan Surendran <naga@cs.wustl.edu> -// -// -// ============================================================================ +//============================================================================= +/** + * @file TCP.h + * + * $Id$ + * + * @author Nagarajan Surendran <naga@cs.wustl.edu> + */ +//============================================================================= + #ifndef TAO_AV_TCP_H #define TAO_AV_TCP_H @@ -23,13 +19,17 @@ #include "Protocol_Factory.h" #include "FlowSpec_Entry.h" +/** + * @class TAO_AV_TCP_Factory + * @brief + */ class TAO_AV_Export TAO_AV_TCP_Factory : public TAO_AV_Transport_Factory { public: + /// Initialization hook. TAO_AV_TCP_Factory (void); virtual ~TAO_AV_TCP_Factory (void); virtual int init (int argc, char *argv[]); - // Initialization hook. virtual int match_protocol (const char *protocol_string); virtual TAO_AV_Acceptor *make_acceptor (void); virtual TAO_AV_Connector *make_connector (void); @@ -37,14 +37,15 @@ public: class TAO_AV_TCP_Flow_Handler; +/** + * @class TAO_AV_TCP_Transport + * @brief A transport abstraction for socket streams. + * Uses the ACE_SOCK_Stream to send the data. + */ class TAO_AV_TCP_Transport :public TAO_AV_Transport { - // = TITLE - // A transport abstraction for socket streams. - // - // = DESCRIPTION - // Uses the ACE_SOCK_Stream to send the data. + public: TAO_AV_TCP_Transport (void); @@ -60,39 +61,43 @@ public: virtual ACE_Addr *get_peer_addr (void); + /// Write the complete Message_Block chain to the connection. virtual ssize_t send (const ACE_Message_Block *mblk, ACE_Time_Value *s = 0); - // Write the complete Message_Block chain to the connection. + /// Write the contents of the buffer of length len to the connection. virtual ssize_t send (const char *buf, size_t len, ACE_Time_Value *s = 0); - // Write the contents of the buffer of length len to the connection. + /// Write the contents of iovcnt iovec's to the connection. virtual ssize_t send (const iovec *iov, int iovcnt, ACE_Time_Value *s = 0); - // Write the contents of iovcnt iovec's to the connection. + /// Read len bytes from into buf. virtual ssize_t recv (char *buf, size_t len, ACE_Time_Value *s = 0); - // Read len bytes from into buf. + /// Read len bytes from into buf using flags. virtual ssize_t recv (char *buf, size_t len, int flags, ACE_Time_Value *s = 0); - // Read len bytes from into buf using flags. + /// Read received data into the iovec buffers. virtual ssize_t recv (iovec *iov, int iovcnt, ACE_Time_Value *s = 0); - // Read received data into the iovec buffers. protected: TAO_AV_TCP_Flow_Handler *handler_; }; +/** + * @class TAO_AV_TCP_Flow_Handler + * @brief + */ class TAO_AV_TCP_Flow_Handler :public virtual TAO_AV_Flow_Handler, public ACE_Svc_Handler <ACE_SOCK_STREAM, ACE_NULL_SYNCH> @@ -110,6 +115,10 @@ protected: class TAO_AV_TCP_Acceptor; +/** + * @class TAO_AV_TCP_Base_Acceptor + * @brief + */ class TAO_AV_TCP_Base_Acceptor :public ACE_Acceptor <TAO_AV_TCP_Flow_Handler,ACE_SOCK_ACCEPTOR> { public: @@ -124,6 +133,10 @@ protected: TAO_FlowSpec_Entry *entry_; }; +/** + * @class TAO_AV_TCP_Acceptor + * @brief + */ class TAO_AV_TCP_Acceptor :public TAO_AV_Acceptor { public: @@ -151,6 +164,10 @@ protected: class TAO_AV_TCP_Connector; +/** + * @class TAO_AV_Base_Connector + * @brief + */ class TAO_AV_TCP_Base_Connector : public ACE_Connector <TAO_AV_TCP_Flow_Handler,ACE_SOCK_CONNECTOR> { public: @@ -165,6 +182,10 @@ protected: ACE_Reactor *reactor_; }; +/** + * @class TAO_AV_TCP_Connector + * @brief + */ class TAO_AV_TCP_Connector : public TAO_AV_Connector { public: @@ -187,20 +208,24 @@ protected: TAO_AV_Flow_Protocol_Factory *flow_protocol_factory_; }; +/** + * @class TAO_AV_TCP_Object + * @brief TAO_AV_Protocol_Object for Transmission Control Protocol (TCP) + */ class TAO_AV_Export TAO_AV_TCP_Object : public TAO_AV_Protocol_Object { public: TAO_AV_TCP_Object (TAO_AV_Callback *callback, TAO_AV_Transport *transport = 0); + /// Dtor virtual ~TAO_AV_TCP_Object (void); - // Dtor virtual int handle_input (void); + /// send a data frame. virtual int send_frame (ACE_Message_Block *frame, TAO_AV_frame_info *frame_info = 0); - // send a data frame. virtual int send_frame (const iovec *iov, int iovcnt, @@ -209,21 +234,25 @@ public: virtual int send_frame (const char*buf, size_t len); + /// end the stream. virtual int destroy (void); - // end the stream. private: + /// Pre-allocated memory to receive the data... ACE_Message_Block frame_; - // Pre-allocated memory to receive the data... }; +/** + * @class TAO_AV_TCP_Flow_Factory + * @brief + */ class TAO_AV_TCP_Flow_Factory : public TAO_AV_Flow_Protocol_Factory { public: + /// Initialization hook. TAO_AV_TCP_Flow_Factory (void); virtual ~TAO_AV_TCP_Flow_Factory (void); virtual int init (int argc, char *argv[]); - // Initialization hook. virtual int match_protocol (const char *flow_string); TAO_AV_Protocol_Object* make_protocol_object (TAO_FlowSpec_Entry *entry, TAO_Base_StreamEndPoint *endpoint, diff --git a/TAO/orbsvcs/orbsvcs/AV/Transport.h b/TAO/orbsvcs/orbsvcs/AV/Transport.h index 9b718a56692..6e3ad3bfa7d 100644 --- a/TAO/orbsvcs/orbsvcs/AV/Transport.h +++ b/TAO/orbsvcs/orbsvcs/AV/Transport.h @@ -1,19 +1,15 @@ /* -*- C++ -*- */ -// $Id$ -// ============================================================================ -// -// = LIBRARY -// ORBSVCS AVStreams -// -// = FILENAME -// Transport.h -// -// = AUTHOR -// Nagarajan Surendran <naga@cs.wustl.edu> -// -// -// ============================================================================ +//============================================================================= +/** + * @file Transport.h + * + * $Id$ + * + * @author Nagarajan Surendran <naga@cs.wustl.edu> + */ +//============================================================================= + #ifndef TAO_AV_TRANSPORT_H #define TAO_AV_TRANSPORT_H @@ -36,29 +32,33 @@ class TAO_AV_Protocol_Object; class TAO_AV_Callback; class TAO_AV_Transport; +/** + * @class TAO_AV_Transport_Item + * @brief + */ class TAO_AV_Export TAO_AV_Transport_Item { public: + /// creator method, the Transport name can only be set when the + /// object is created. TAO_AV_Transport_Item (const ACE_CString &name); - // creator method, the Transport name can only be set when the - // object is created. + /// return a reference to the character representation of the Transport + /// factories name. const ACE_CString &name (void); - // return a reference to the character representation of the Transport - // factories name. + /// return a pointer to the Transport factory. TAO_AV_Transport_Factory *factory (void); - // return a pointer to the Transport factory. + /// set the factory pointer's valus. void factory (TAO_AV_Transport_Factory *factory); - // set the factory pointer's valus. private: + /// Transport factory name. ACE_CString name_; - // Transport factory name. + /// pointer to factory object. TAO_AV_Transport_Factory *factory_; - // pointer to factory object. }; @@ -66,65 +66,71 @@ private: class TAO_AV_Flow_Protocol_Factory; +/** + * @class TAO_AV_Flow_Protocol_Item + * @brief + */ class TAO_AV_Export TAO_AV_Flow_Protocol_Item { public: + /// creator method, the Flow_Protocol name can only be set when the + /// object is created. TAO_AV_Flow_Protocol_Item (const ACE_CString &name); - // creator method, the Flow_Protocol name can only be set when the - // object is created. + /// return a reference to the character representation of the Flow_Protocol + /// factories name. const ACE_CString &name (void); - // return a reference to the character representation of the Flow_Protocol - // factories name. + /// return a pointer to the Flow_Protocol factory. TAO_AV_Flow_Protocol_Factory *factory (void); - // return a pointer to the Flow_Protocol factory. + /// set the factory pointer's valus. void factory (TAO_AV_Flow_Protocol_Factory *factory); - // set the factory pointer's valus. private: + /// Flow_Protocol factory name. ACE_CString name_; - // Flow_Protocol factory name. + /// pointer to factory object. TAO_AV_Flow_Protocol_Factory *factory_; - // pointer to factory object. }; - - +/** + * @class TAO_AV_Flow_Handler + * @brief + */ class TAO_AV_Flow_Handler { public: + /// Constructor. TAO_AV_Flow_Handler (void); - // Constructor. + /// Start/stop the flow handler. virtual int start (TAO_FlowSpec_Entry::Role role); virtual int stop (TAO_FlowSpec_Entry::Role role); - // Start/stop the flow handler. + /// Schedule timer. Uses the get_timeout method on the callback. virtual int schedule_timer (void); - // Schedule timer. Uses the get_timeout method on the callback. + /// get the transport. TAO_AV_Transport *transport (void); - // get the transport. + /// set/get protocol_object. TAO_AV_Protocol_Object* protocol_object (void); void protocol_object (TAO_AV_Protocol_Object *protocol_object); - // set/get protocol_object. + /// set the callback. void callback (TAO_AV_Callback *callback); - // set the callback. + /// Handle timeout. called from reactor. int handle_timeout (const ACE_Time_Value &tv, const void *arg = 0); - // Handle timeout. called from reactor. + /// set the remote address. virtual int set_remote_address (ACE_Addr *address); - // set the remote address. + /// get the underlying event handler. To be overridden by the derived clases. virtual ACE_Event_Handler* event_handler (void) = 0; - // get the underlying event handler. To be overridden by the derived clases. protected: TAO_AV_Transport *transport_; @@ -136,14 +142,14 @@ protected: }; // Transports +/** + * @class TAO_AV_Transport + * @brief A Base class for the different transport protocols. + * All the different transports should derive and implement + * the open,close,send and recv methods. + */ class TAO_AV_Export TAO_AV_Transport { - // TITLE - // = A Base class for the different transport protocols. - // - // DESCRIPTION - // = All the different transports should derive and implement - // the open,close,send and recv methods. public: TAO_AV_Transport (void); @@ -153,38 +159,38 @@ public: virtual int close (void) = 0; + /// Write the complete Message_Block chain to the connection. virtual int mtu (void) = 0; virtual ACE_Addr *get_peer_addr (void) = 0; virtual ACE_Addr *get_local_addr (void); virtual ssize_t send (const ACE_Message_Block *mblk, ACE_Time_Value *s = 0) = 0; - // Write the complete Message_Block chain to the connection. + /// Write the contents of the buffer of length len to the connection. virtual ssize_t send (const char *buf, size_t len, ACE_Time_Value *s = 0) = 0; - // Write the contents of the buffer of length len to the connection. + /// Write the contents of iovcnt iovec's to the connection. virtual ssize_t send (const iovec *iov, int iovcnt, ACE_Time_Value *s = 0) = 0; - // Write the contents of iovcnt iovec's to the connection. + /// Read len bytes from into buf. virtual ssize_t recv (char *buf, size_t len, ACE_Time_Value *s = 0) = 0; - // Read len bytes from into buf. + /// Read len bytes from into buf using flags. virtual ssize_t recv (char *buf, size_t len, int flags, ACE_Time_Value *s = 0) = 0; - // Read len bytes from into buf using flags. + /// Read received data into the iovec buffers. virtual ssize_t recv (iovec *iov, int iovcnt, ACE_Time_Value *s = 0) = 0; - // Read received data into the iovec buffers. }; @@ -192,6 +198,10 @@ class TAO_Base_StreamEndPoint; class TAO_AV_Core; class TAO_FlowSpec_Entry; +/** + * @class TAO_AV_Acceptor + * @brief + */ class TAO_AV_Acceptor { public: @@ -215,6 +225,10 @@ protected: ACE_Addr *address_; }; +/** + * @class TAO_AV_Connector + * @brief + */ class TAO_AV_Connector { public: @@ -238,19 +252,25 @@ protected: typedef ACE_Unbounded_Set<TAO_AV_Connector*> TAO_AV_ConnectorSet; typedef ACE_Unbounded_Set_Iterator<TAO_AV_Connector*> TAO_AV_ConnectorSetItor; +/** + * @class TAO_AV_Connector_Registry + * @brief + */ class TAO_AV_Export TAO_AV_Connector_Registry { public: + /** + * int connect (TAO_FlowSpec_Entry *flowspec, + * TAO_AV_Transport *&transport); + * TAO_AV_Connector *get_connector (TAO_AV_Core::Protocol protocol); + * Return the connector bridges + */ TAO_AV_Connector_Registry (void); ~TAO_AV_Connector_Registry (void); int open (TAO_Base_StreamEndPoint *endpoint, TAO_AV_Core *av_core, TAO_AV_FlowSpecSet &flow_spec_set); - // int connect (TAO_FlowSpec_Entry *flowspec, - // TAO_AV_Transport *&transport); int close_all (void); - // TAO_AV_Connector *get_connector (TAO_AV_Core::Protocol protocol); - // Return the connector bridges TAO_AV_ConnectorSetItor begin (void); TAO_AV_ConnectorSetItor end (void); protected: @@ -260,6 +280,10 @@ protected: typedef ACE_Unbounded_Set<TAO_AV_Acceptor*> TAO_AV_AcceptorSet; typedef ACE_Unbounded_Set_Iterator<TAO_AV_Acceptor*> TAO_AV_AcceptorSetItor; +/** + * @class TAO_AV_Acceptor_Registry + * @brief + */ class TAO_AV_Export TAO_AV_Acceptor_Registry { public: @@ -278,13 +302,17 @@ protected: TAO_AV_AcceptorSet acceptors_; }; +/** + * @class TAO_AV_Transport_Factory + * @brief + */ class TAO_AV_Export TAO_AV_Transport_Factory : public ACE_Service_Object { public: + /// Initialization hook. TAO_AV_Transport_Factory (void); virtual ~TAO_AV_Transport_Factory (void); virtual int init (int argc, char *argv[]); - // Initialization hook. virtual int match_protocol (const char *protocol_string); virtual TAO_AV_Acceptor *make_acceptor (void); virtual TAO_AV_Connector *make_connector (void); diff --git a/TAO/orbsvcs/orbsvcs/AV/UDP.h b/TAO/orbsvcs/orbsvcs/AV/UDP.h index 71b3d3e5ce4..5a2d5728e9d 100644 --- a/TAO/orbsvcs/orbsvcs/AV/UDP.h +++ b/TAO/orbsvcs/orbsvcs/AV/UDP.h @@ -1,19 +1,15 @@ /* -*- C++ -*- */ -// $Id$ -// ============================================================================ -// -// = LIBRARY -// ORBSVCS AVStreams -// -// = FILENAME -// UDP.h -// -// = AUTHOR -// Nagarajan Surendran <naga@cs.wustl.edu> -// -// -// ============================================================================ +//============================================================================= +/** + * @file UDP.h + * + * $Id$ + * + * @author Nagarajan Surendran <naga@cs.wustl.edu> + */ +//============================================================================= + #ifndef TAO_AV_UDP_H #define TAO_AV_UDP_H @@ -22,13 +18,17 @@ #include "ace/OS.h" #include "Protocol_Factory.h" +/** + * @class TAO_AV_UDP_Factory + * @brief + */ class TAO_AV_Export TAO_AV_UDP_Factory : public TAO_AV_Transport_Factory { public: + /// Initialization hook. TAO_AV_UDP_Factory (void); virtual ~TAO_AV_UDP_Factory (void); virtual int init (int argc, char *argv[]); - // Initialization hook. virtual int match_protocol (const char *protocol_string); virtual TAO_AV_Acceptor *make_acceptor (void); virtual TAO_AV_Connector *make_connector (void); @@ -36,14 +36,15 @@ public: class TAO_AV_UDP_Flow_Handler; +/** + * @class TAO_AV_UDP_Transport + * @brief A transport abstraction for udp sockets. + * Uses the ACE_SOCK_Dgram to send the data. + */ class TAO_AV_UDP_Transport :public TAO_AV_Transport { - // = TITLE - // A transport abstraction for udp sockets. - // - // = DESCRIPTION - // Uses the ACE_SOCK_Dgram to send the data. + public: TAO_AV_UDP_Transport (void); @@ -60,50 +61,54 @@ public: virtual int set_remote_address (const ACE_INET_Addr &address); + /// Write the complete Message_Block chain to the connection. virtual ssize_t send (const ACE_Message_Block *mblk, ACE_Time_Value *s = 0); - // Write the complete Message_Block chain to the connection. + /// Write the contents of the buffer of length len to the connection. virtual ssize_t send (const char *buf, size_t len, ACE_Time_Value *s = 0); - // Write the contents of the buffer of length len to the connection. + /// Write the contents of iovcnt iovec's to the connection. virtual ssize_t send (const iovec *iov, int iovcnt, ACE_Time_Value *s = 0); - // Write the contents of iovcnt iovec's to the connection. + /// Read len bytes from into buf. virtual ssize_t recv (char *buf, size_t len, ACE_Time_Value *s = 0); - // Read len bytes from into buf. + /// Read len bytes from into buf using flags. virtual ssize_t recv (char *buf, size_t len, int flags, ACE_Time_Value *s = 0); - // Read len bytes from into buf using flags. + /// Read received data into the iovec buffers. virtual ssize_t recv (iovec *iov, int iovcnt, ACE_Time_Value *s = 0); - // Read received data into the iovec buffers. protected: TAO_AV_UDP_Flow_Handler *handler_; ACE_Addr *addr_; ACE_INET_Addr peer_addr_; }; +/** + * @class TAO_AV_UDP_Flow_Handler + * @brief Flow Handler for UDP flows. + */ class TAO_AV_UDP_Flow_Handler :public virtual TAO_AV_Flow_Handler, public virtual ACE_Event_Handler { public: + ///Ctor + /// Dtor TAO_AV_UDP_Flow_Handler (void); - //Ctor ~TAO_AV_UDP_Flow_Handler (void); - // Dtor int open (ACE_Addr &address); virtual TAO_AV_Transport *transport (void); virtual int set_remote_address (ACE_Addr *address); @@ -118,6 +123,10 @@ protected: ACE_SOCK_Dgram sock_dgram_; }; +/** + * @class TAO_AV_UDP_Acceptor + * @brief + */ class TAO_AV_UDP_Acceptor :public TAO_AV_Acceptor { @@ -144,6 +153,10 @@ protected: TAO_AV_Flow_Protocol_Factory *flow_protocol_factory_; }; +/** + * @class TAO_AV_UDP_Connector + * @brief + */ class TAO_AV_UDP_Connector :public TAO_AV_Connector { @@ -165,20 +178,24 @@ protected: TAO_AV_Flow_Protocol_Factory *flow_protocol_factory_; }; +/** + * @class TAO_AV_UDP_Object + * @brief TAO_AV_Protocol_Object for the User Datagram Protocol (UDP) + */ class TAO_AV_Export TAO_AV_UDP_Object : public TAO_AV_Protocol_Object { public: TAO_AV_UDP_Object (TAO_AV_Callback *callback, TAO_AV_Transport *transport = 0); + /// Dtor virtual ~TAO_AV_UDP_Object (void); - // Dtor virtual int handle_input (void); + /// send a data frame. virtual int send_frame (ACE_Message_Block *frame, TAO_AV_frame_info *frame_info = 0); - // send a data frame. virtual int send_frame (const iovec *iov, int iovcnt, @@ -187,21 +204,25 @@ public: virtual int send_frame (const char*buf, size_t len); + /// end the stream. virtual int destroy (void); - // end the stream. private: + /// Pre-allocated memory to receive the data... ACE_Message_Block frame_; - // Pre-allocated memory to receive the data... }; +/** + * @class TAO_AV_UDP_Flow_Factory + * @brief + */ class TAO_AV_UDP_Flow_Factory : public TAO_AV_Flow_Protocol_Factory { public: + /// Initialization hook. TAO_AV_UDP_Flow_Factory (void); virtual ~TAO_AV_UDP_Flow_Factory (void); virtual int init (int argc, char *argv[]); - // Initialization hook. virtual int match_protocol (const char *flow_string); TAO_AV_Protocol_Object* make_protocol_object (TAO_FlowSpec_Entry *entry, TAO_Base_StreamEndPoint *endpoint, |