TAO_AV_RTCP_Object Class Reference

TAO_AV_Protocol_Object for RTCP protocol. More...

#include <RTCP.h>

Inheritance diagram for TAO_AV_RTCP_Object:

Inheritance graph
[legend]
Collaboration diagram for TAO_AV_RTCP_Object:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 TAO_AV_RTCP_Object (TAO_AV_Callback *client_cb, TAO_AV_RTCP_Callback *&rtcp_cb, TAO_AV_Transport *transport=0)
 constructor.
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)
 Called on a control object.
virtual int handle_control_output (ACE_Message_Block *frame)
virtual int set_policies (const TAO_AV_PolicyList &policy_list)
 set/get policies.
virtual int start (void)
 start/stop the flow.
virtual int stop (void)
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, TAO_AV_frame_info *frame_info=0)
 send a frame in iovecs.
virtual int send_frame (const char *buf, size_t len)
virtual int destroy (void)
 end the stream.
void ssrc (ACE_UINT32 ssrc)
ACE_UINT32 ssrc (void)
void ts_offset (ACE_UINT32 ts_offset)

Private Attributes

TAO_AV_Callbackclient_cb_
TAO_AV_RTCP_Callback rtcp_cb_
ACE_UINT32 ssrc_

Detailed Description

TAO_AV_Protocol_Object for RTCP protocol.

Definition at line 199 of file RTCP.h.


Constructor & Destructor Documentation

TAO_AV_RTCP_Object::TAO_AV_RTCP_Object ( TAO_AV_Callback client_cb,
TAO_AV_RTCP_Callback *&  rtcp_cb,
TAO_AV_Transport transport = 0 
)

constructor.

Definition at line 431 of file RTCP.cpp.

References client_cb_, and rtcp_cb_.

00434   :TAO_AV_Protocol_Object (&rtcp_cb_, transport)
00435 {
00436   rtcp_cb = &this->rtcp_cb_;
00437   this->client_cb_ = client_cb;
00438 
00439 }

TAO_AV_RTCP_Object::~TAO_AV_RTCP_Object ( void   )  [virtual]

Destructor.

Definition at line 441 of file RTCP.cpp.

00442 {
00443 }


Member Function Documentation

int TAO_AV_RTCP_Object::destroy ( void   )  [virtual]

end the stream.

Implements TAO_AV_Protocol_Object.

Definition at line 446 of file RTCP.cpp.

References TAO_AV_Protocol_Object::callback_, and TAO_AV_Callback::handle_destroy().

00447 {
00448   this->callback_->handle_destroy ();
00449   delete this;
00450 
00451   return 0;
00452 }

int TAO_AV_RTCP_Object::handle_control_input ( ACE_Message_Block frame,
const ACE_Addr peer_address 
) [virtual]

Called on a control object.

Reimplemented from TAO_AV_Protocol_Object.

Definition at line 473 of file RTCP.cpp.

References TAO_AV_Protocol_Object::callback_, and TAO_AV_Callback::receive_frame().

00475 {
00476   return this->callback_->receive_frame (frame,
00477                                          0,
00478                                          peer_address);
00479 }

int TAO_AV_RTCP_Object::handle_control_output ( ACE_Message_Block frame  )  [virtual]

Definition at line 482 of file RTCP.cpp.

References TAO_AV_Protocol_Object::callback_, and TAO_AV_RTCP_Callback::send_frame().

Referenced by TAO_AV_RTP_Object::send_frame().

00483 {
00484   TAO_AV_RTCP_Callback *cb = dynamic_cast<TAO_AV_RTCP_Callback*> (this->callback_);
00485 
00486   return cb->send_frame (frame);
00487 }

int TAO_AV_RTCP_Object::handle_input ( void   )  [virtual]

Implements TAO_AV_Protocol_Object.

Definition at line 384 of file RTCP.cpp.

References ACE_DEBUG, TAO_AV_Protocol_Object::callback_, TAO_AV_Transport::get_peer_addr(), LM_ERROR, TAO_AV_Transport::mtu(), ACE_Message_Block::rd_ptr(), TAO_AV_Callback::receive_control_frame(), TAO_AV_Transport::recv(), TAO_debug_level, TAO_AV_Protocol_Object::transport_, and ACE_Message_Block::wr_ptr().

00385 {
00386   size_t bufsiz = 2*this->transport_->mtu ();
00387   ACE_Message_Block data (bufsiz);
00388 
00389   int n = this->transport_->recv (data.rd_ptr (),bufsiz);
00390   if (n == 0)
00391     {
00392       if (TAO_debug_level > 0)
00393         ACE_DEBUG ((LM_ERROR, "TAO_AV_RTCP::handle_input:connection closed\n"));
00394       return -1;
00395     }
00396   if (n < 0)
00397     {
00398       if (TAO_debug_level > 0)
00399         ACE_DEBUG ((LM_ERROR,"TAO_AV_RTCP::handle_input:recv error\n"));
00400       return -1;
00401     }
00402   data.wr_ptr (n);
00403   ACE_Addr *peer_addr = this->transport_->get_peer_addr ();
00404   this->callback_->receive_control_frame (&data,*peer_addr);
00405   return 0;
00406 }

int TAO_AV_RTCP_Object::send_frame ( const char *  buf,
size_t  len 
) [virtual]

Implements TAO_AV_Protocol_Object.

Definition at line 425 of file RTCP.cpp.

00427 {
00428   return 0;
00429 }

int TAO_AV_RTCP_Object::send_frame ( const iovec *  iov,
int  iovcnt,
TAO_AV_frame_info frame_info = 0 
) [virtual]

send a frame in iovecs.

Implements TAO_AV_Protocol_Object.

Definition at line 416 of file RTCP.cpp.

References TAO_AV_Transport::send(), and TAO_AV_Protocol_Object::transport_.

00419 {
00420   return this->transport_->send (iov,
00421                                  iovcnt);
00422 }

int TAO_AV_RTCP_Object::send_frame ( ACE_Message_Block frame,
TAO_AV_frame_info frame_info = 0 
) [virtual]

send a data frame.

Implements TAO_AV_Protocol_Object.

Definition at line 409 of file RTCP.cpp.

References TAO_AV_Transport::send(), and TAO_AV_Protocol_Object::transport_.

00411 {
00412   return this->transport_->send (frame);
00413 }

int TAO_AV_RTCP_Object::set_policies ( const TAO_AV_PolicyList policy_list  )  [virtual]

set/get policies.

Reimplemented from TAO_AV_Protocol_Object.

Definition at line 455 of file RTCP.cpp.

00456 {
00457   return -1;
00458 }

ACE_UINT32 TAO_AV_RTCP_Object::ssrc ( void   )  [inline]

Definition at line 239 of file RTCP.h.

00239 { return this->ssrc_; }

void TAO_AV_RTCP_Object::ssrc ( ACE_UINT32  ssrc  )  [inline]

Definition at line 238 of file RTCP.h.

Referenced by TAO_AV_RTP_Object::control_object(), TAO_AV_RTP_Object::send_frame(), and TAO_AV_RTCP_Callback::send_report().

00238 {this->ssrc_ = ssrc; }

int TAO_AV_RTCP_Object::start ( void   )  [virtual]

start/stop the flow.

Reimplemented from TAO_AV_Protocol_Object.

Definition at line 461 of file RTCP.cpp.

References TAO_AV_Protocol_Object::callback_, and TAO_AV_Callback::handle_start().

00462 {
00463   return this->callback_->handle_start ();
00464 }

int TAO_AV_RTCP_Object::stop ( void   )  [virtual]

Reimplemented from TAO_AV_Protocol_Object.

Definition at line 467 of file RTCP.cpp.

References TAO_AV_Protocol_Object::callback_, and TAO_AV_Callback::handle_stop().

00468 {
00469   return this->callback_->handle_stop ();
00470 }

void TAO_AV_RTCP_Object::ts_offset ( ACE_UINT32  ts_offset  ) 

Definition at line 490 of file RTCP.cpp.

References TAO_AV_Protocol_Object::callback_, and TAO_AV_RTCP_Callback::ts_offset().

Referenced by TAO_AV_RTP_Object::control_object().

00491 {
00492   TAO_AV_RTCP_Callback *cb = dynamic_cast<TAO_AV_RTCP_Callback*> (this->callback_);
00493   cb->ts_offset (ts_offset);
00494 }


Member Data Documentation

TAO_AV_Callback* TAO_AV_RTCP_Object::client_cb_ [private]

Definition at line 245 of file RTCP.h.

Referenced by TAO_AV_RTCP_Object().

TAO_AV_RTCP_Callback TAO_AV_RTCP_Object::rtcp_cb_ [private]

Definition at line 246 of file RTCP.h.

Referenced by TAO_AV_RTCP_Object().

ACE_UINT32 TAO_AV_RTCP_Object::ssrc_ [private]

Definition at line 247 of file RTCP.h.


The documentation for this class was generated from the following files:
Generated on Tue Feb 2 17:48:03 2010 for TAO_AV by  doxygen 1.4.7