📄 avstreams_i.h
字号:
/// Multicast bind
virtual AVStreams::StreamCtrl_ptr bind_mcast (AVStreams::MMDevice_ptr first_peer,
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));
/// 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,
CORBA::Boolean_out met_qos,
char *&named_vdev,
const AVStreams::flowSpec &the_spec
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::streamOpFailed,
AVStreams::streamOpDenied,
AVStreams::notSupported,
AVStreams::QoSRequestFailed,
AVStreams::noSuchFlow));
/// 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,
CORBA::Boolean_out met_qos,
char *&named_vdev,
const AVStreams::flowSpec &the_spec
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::streamOpFailed,
AVStreams::streamOpDenied,
AVStreams::notSupported,
AVStreams::QoSRequestFailed,
AVStreams::noSuchFlow));
/// Remove the StreamEndPoint and the related vdev
virtual void destroy (AVStreams::StreamEndPoint_ptr the_ep,
const char *vdev_name
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::notSupported));
/// Not supported in the light profile, raises notsupported
virtual char * add_fdev (CORBA::Object_ptr the_fdev
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::notSupported,
AVStreams::streamOpFailed));
/// Not supported in the light profile, raises notsupported
virtual CORBA::Object_ptr get_fdev (const char *flow_name
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::notSupported,
AVStreams::noSuchFlow));
/// Not supported in the light profile, raises notsupported
virtual void remove_fdev (const char *flow_name
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::notSupported,
AVStreams::noSuchFlow,
AVStreams::streamOpFailed));
/// Destructor
virtual ~TAO_MMDevice (void);
protected:
/// Helper method to implement add_fdev()
char* add_fdev_i (AVStreams::FDev_ptr fdev
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::notSupported,
AVStreams::streamOpFailed));
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_;
/// current flow number used for system generation of flow names.
u_int flow_num_;
typedef ACE_Hash_Map_Manager <ACE_CString,AVStreams::FDev_var,ACE_Null_Mutex> FDev_Map;
typedef ACE_Hash_Map_Iterator <ACE_CString,AVStreams::FDev_var,ACE_Null_Mutex> FDev_Map_Iterator;
typedef ACE_Hash_Map_Entry <ACE_CString,AVStreams::FDev_var> FDev_Map_Entry;
/// hash table for the flownames and its corresponding flowEndpoint
/// reference.
FDev_Map fdev_map_;
/// sequence of supported flow names.
AVStreams::flowSpec flows_;
TAO_StreamCtrl *stream_ctrl_;
};
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 virtual TAO_PropertySet,
public virtual PortableServer::RefCountServantBase
{
public:
/// default constructor.
TAO_FlowConnection (void);
/// stop this flow.
virtual void stop (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
/// start this flow.
virtual void start (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
/// destroy this flow.
virtual void destroy (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
/// modify the QoS for this flow.
virtual CORBA::Boolean modify_QoS (AVStreams::QoS & new_qos
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::QoSRequestFailed));
/// use the specified flow protocol for this flow.
virtual CORBA::Boolean use_flow_protocol (const char * fp_name,
const CORBA::Any & fp_settings
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::FPError,
AVStreams::notSupported));
/// pushes an event , to be handled by the application.
virtual void push_event (const AVStreams::streamEvent & the_event
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
/// connect 2 Flow Devices.
virtual CORBA::Boolean connect_devs (AVStreams::FDev_ptr a_party,
AVStreams::FDev_ptr b_party,
AVStreams::QoS & the_qos
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::streamOpFailed,
AVStreams::streamOpDenied,
AVStreams::QoSRequestFailed));
/// 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
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::formatMismatch,
AVStreams::FEPMismatch,
AVStreams::alreadyConnected));
/// disconnect this flow connection.
virtual CORBA::Boolean disconnect (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
/// adds the producer to this flow connection.
virtual CORBA::Boolean add_producer (AVStreams::FlowProducer_ptr flow_producer,
AVStreams::QoS & the_qos
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::alreadyConnected,
AVStreams::notSupported));
/// adds a consumer to this flow connection.
virtual CORBA::Boolean add_consumer (AVStreams::FlowConsumer_ptr flow_consumer,
AVStreams::QoS & the_qos
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::alreadyConnected));
/// drops a flow endpoint from the flow.
virtual CORBA::Boolean drop (AVStreams::FlowEndPoint_ptr target
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::notConnected));
int set_mcast_addr (ACE_CString addr,u_short port);
void set_protocol (const char *protocol);
protected:
typedef ACE_Unbounded_Set<AVStreams::FlowProducer_ptr> FlowProducer_Set;
typedef ACE_Unbounded_Set_Iterator<AVStreams::FlowProducer_ptr> FlowProducer_SetItor;
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_;
/// IP Multicasting is used.
int ip_multicast_;
TAO_MCastConfigIf *mcastconfigif_i_;
AVStreams::MCastConfigIf_var mcastconfigif_;
u_short mcast_port_;
ACE_CString mcast_addr_;
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_Base_StreamEndPoint,
public virtual PortableServer::RefCountServantBase
{
public:
///default constructor.
TAO_FlowEndPoint (void);
TAO_FlowEndPoint (const char *flowname,
AVStreams::protocolSpec &protocols,
const char *format);
int open (const char *flowname,
AVStreams::protocolSpec &protocols,
const char *format);
int set_flowname (const char *flowname);
virtual void set_flow_handler (const char *flowname,
TAO_AV_Flow_Handler *handler);
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 (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
/// unlock the flow endpoint for subsequent use.
virtual void unlock (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
/// destroy this flow.
virtual void destroy (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
/// get method for the related streamendpoint under which this
/// flowendpoint is.
virtual AVStreams::StreamEndPoint_ptr related_sep(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
/// set method for the related streamendpoint under which this
/// flowendpoint is.
virtual void related_sep (AVStreams::StreamEndPoint_ptr related_sep
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
virtual AVStreams::FlowConnection_ptr related_flow_connection(ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
// 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
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
/// returns the other flowendpoint to which this is connected.
virtual AVStreams::FlowEndPoint_ptr get_connected_fep (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::notConnected,
AVStreams::notSupported));
//// use the specified flow protocol.
virtual CORBA::Boolean use_flow_protocol (const char * fp_name,
const CORBA::Any & fp_settings
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::FPError,
AVStreams::notSupported));
/// sets the data format.
virtual void set_format (const char * format
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
AVStreams::notSupported));
/// sets the device parameters.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -