📄 avstreams_i.h
字号:
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::noSuchFlow,
AVStreams::FPError));
/// Not implemented in the light profile, throws notsupported
virtual CORBA::Object_ptr get_fep (const char *flow_name
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::notSupported,
AVStreams::noSuchFlow));
/// Not implemented in the light profile, throws notsupported
virtual char * add_fep (CORBA::Object_ptr the_fep
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::notSupported,
AVStreams::streamOpFailed));
/// Not implemented in the light profile, throws notsupported
virtual void remove_fep (const char *fep_name
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::notSupported,
AVStreams::streamOpFailed));
/// Used to "attach" a negotiator to the endpoint
virtual void set_negotiator (AVStreams::Negotiator_ptr new_negotiator
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
/// Used for public key encryption.
virtual void set_key (const char *flow_name,
const AVStreams::key & the_key
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
/// Used to set a unique id for packets sent by this streamendpoint
virtual void set_source_id (CORBA::Long source_id
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
/// Destructor
virtual ~TAO_StreamEndPoint (void);
CORBA::Boolean multiconnect (AVStreams::streamQoS &the_qos,
AVStreams::flowSpec &the_spec
ACE_ENV_ARG_DECL);
protected:
/// Helper methods to implement add_fep()
char* add_fep_i (AVStreams::FlowEndPoint_ptr fep
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::notSupported,
AVStreams::streamOpFailed));
char* add_fep_i_add_property (AVStreams::FlowEndPoint_ptr fep
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::notSupported,
AVStreams::streamOpFailed));
/// translate from application level to network level qos.
int translate_qos (const AVStreams::streamQoS& application_qos,
AVStreams::streamQoS& network_qos);
/// Count of the number of flows in this streamendpoint, used to
/// generate unique names for the flows.
u_int flow_count_;
/// current flow number used for system generation of flow names.
u_int flow_num_;
/// hash table for the flownames and its corresponding flowEndpoint reference.
FlowEndPoint_Map fep_map_;
/// sequence of supported flow names.
AVStreams::flowSpec flows_;
/// source id used for multicast.
CORBA::Long source_id_;
/// our local negotiator for QoS.
AVStreams::Negotiator_var negotiator_;
/// Our available list of protocols.
AVStreams::protocolSpec protocols_;
/// Chosen protocol for this streamendpoint based on availableprotocols property.
CORBA::String_var protocol_;
/// Key used for encryption.
AVStreams::key key_;
/// 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 <ACE_CString, TAO_FlowSpec_Entry*,ACE_Null_Mutex> mcast_entry_map_;
TAO_AV_FlowSpecSet forward_flow_spec_set;
TAO_AV_FlowSpecSet reverse_flow_spec_set;
AVStreams::StreamEndPoint_var peer_sep_;
AVStreams::SFPStatus *sfp_status_;
AVStreams::StreamCtrl_var streamctrl_;
};
/**
* @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
{
public:
/// Constructor
TAO_StreamEndPoint_A (void);
/// Used for ATM-style multicast
virtual CORBA::Boolean multiconnect (AVStreams::streamQoS &the_qos,
AVStreams::flowSpec &the_spec
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::noSuchFlow,
AVStreams::QoSRequestFailed,
AVStreams::streamOpFailed));
/// 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
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::streamOpFailed,
AVStreams::noSuchFlow,
AVStreams::QoSRequestFailed,
AVStreams::notSupported));
/// Used to remove a multicast leaf
virtual void disconnect_leaf (AVStreams::StreamEndPoint_B_ptr the_ep,
const AVStreams::flowSpec &theSpec
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::streamOpFailed,
AVStreams::noSuchFlow,
AVStreams::notSupported));
/// Destructor
virtual ~TAO_StreamEndPoint_A (void);
};
// For backward compatibility.
#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,
public virtual PortableServer::RefCountServantBase
{
// = DESCRIPTION
// The "B" side of a streamendpoint
public:
/// Constructor
TAO_StreamEndPoint_B (void);
/// Used for internet-style multicast
virtual CORBA::Boolean multiconnect (AVStreams::streamQoS &the_qos,
AVStreams::flowSpec &the_spec
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::streamOpFailed,
AVStreams::noSuchFlow,
AVStreams::QoSRequestFailed,
AVStreams::FPError));
/// Destructor
virtual ~TAO_StreamEndPoint_B (void);
};
/**
* @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
{
public:
/// Default Constructor
TAO_VDev (void);
/// 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,
const AVStreams::flowSpec &the_spec
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::noSuchFlow,
AVStreams::QoSRequestFailed,
AVStreams::streamOpFailed));
/// 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,
const AVStreams::flowSpec &the_spec
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::noSuchFlow,
AVStreams::QoSRequestFailed,
AVStreams::streamOpFailed));
/// Called by the peer VDev to configure the device (catch all)
virtual void configure (const CosPropertyService::Property &the_config_mesg
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::PropertyException,
AVStreams::streamOpFailed));
/// Used to set a format on a flowname
virtual void set_format (const char *flowName,
const char *format_name
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::notSupported));
/// Used to set device parameters
virtual void set_dev_params (const char *flowName,
const CosPropertyService::Properties &new_params
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::PropertyException,
AVStreams::streamOpFailed));
/// Called to change QoS of the device
virtual CORBA::Boolean modify_QoS (AVStreams::streamQoS &the_qos,
const AVStreams::flowSpec &the_spec
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::noSuchFlow,
AVStreams::QoSRequestFailed));
protected:
/// Destructor for a servant should be protected or private.
/// Use _remove_ref() to delete this servant.
virtual ~TAO_VDev (void);
/// 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
ACE_ENV_ARG_DECL_WITH_DEFAULTS);
/// My stream controller
AVStreams::StreamCtrl_var streamctrl_;
/// My peer
AVStreams::VDev_var peer_;
/// The multicast VDev peer.
AVStreams::MCastConfigIf_var mcast_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 virtual TAO_PropertySet,
public virtual PortableServer::RefCountServantBase
{
public:
/// Constructor
enum MMDevice_Type {MMDEVICE_A = 0,MMDEVICE_B = 1};
TAO_MMDevice (TAO_AV_Endpoint_Strategy *endpoint_strategy_);
virtual AVStreams::StreamEndPoint_ptr create_A_B (MMDevice_Type type,
AVStreams::StreamCtrl_ptr the_requester,
AVStreams::VDev_out the_vdev,
AVStreams::streamQoS &the_qos,
CORBA::Boolean_out met_qos,
char *&named_vdev,
const AVStreams::flowSpec &the_spec
ACE_ENV_ARG_DECL_WITH_DEFAULTS);
/// 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,
const AVStreams::flowSpec &the_spec
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::streamOpFailed,
AVStreams::noSuchFlow,
AVStreams::QoSRequestFailed));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -