#include <Transport.h>
Inheritance diagram for TAO_AV_Flow_Handler:
Public Member Functions | |
TAO_AV_Flow_Handler (void) | |
Constructor. | |
virtual | ~TAO_AV_Flow_Handler (void) |
virtual int | start (TAO_FlowSpec_Entry::Role role) |
Start/stop the flow handler. | |
virtual int | stop (TAO_FlowSpec_Entry::Role role) |
virtual int | schedule_timer (void) |
Schedule timer. Uses the get_timeout method on the callback. | |
virtual int | cancel_timer (void) |
TAO_AV_Transport * | transport (void) |
get the transport. | |
TAO_AV_Protocol_Object * | protocol_object (void) |
set/get protocol_object. | |
void | protocol_object (TAO_AV_Protocol_Object *protocol_object) |
void | callback (TAO_AV_Callback *callback) |
set the callback. | |
virtual int | handle_timeout (const ACE_Time_Value &tv, const void *arg=0) |
Handle timeout. called from reactor. | |
virtual int | set_remote_address (ACE_Addr *address) |
set the remote address. | |
virtual ACE_Event_Handler * | event_handler (void)=0 |
get the underlying event handler. To be overridden by the derived clases. | |
virtual int | change_qos (AVStreams::QoS) |
Protected Attributes | |
TAO_AV_Transport * | transport_ |
TAO_AV_Callback * | callback_ |
TAO_AV_Protocol_Object * | protocol_object_ |
long | timer_id_ |
ACE_Reactor * | reactor_ |
void * | timeout_arg_ |
|
Constructor.
Definition at line 488 of file Transport.cpp.
00489 :transport_ (0), 00490 callback_ (0), 00491 protocol_object_ (0), 00492 timer_id_ (-1) 00493 { 00494 } |
|
Definition at line 496 of file Transport.cpp. References cancel_timer().
00497 { 00498 // cancel the timer (if there is one) 00499 this->cancel_timer(); 00500 } |
|
set the callback.
Definition at line 626 of file Transport.cpp. Referenced by TAO_AV_Callback::open().
00627 { 00628 this->callback_ = callback; 00629 } |
|
Definition at line 549 of file Transport.cpp. References ACE_Singleton< TYPE, ACE_LOCK >::instance(). Referenced by ~TAO_AV_Flow_Handler().
00550 { 00551 if (this->timer_id_ != -1) 00552 return TAO_AV_CORE::instance()->reactor ()->cancel_timer (this->timer_id_); 00553 else 00554 return 0; 00555 } |
|
Reimplemented in TAO_AV_UDP_Flow_Handler. Definition at line 602 of file Transport.cpp.
00603 {
00604 return 0;
00605 }
|
|
get the underlying event handler. To be overridden by the derived clases.
Implemented in TAO_AV_UDP_MCast_Flow_Handler, TAO_AV_TCP_Flow_Handler, and TAO_AV_UDP_Flow_Handler. Referenced by TAO_AV_UDP_Connector::activate_svc_handler(), TAO_AV_UDP_Acceptor::activate_svc_handler(), handle_timeout(), TAO_AV_Core::init_forward_flows(), schedule_timer(), and stop(). |
|
Handle timeout. called from reactor.
Reimplemented in TAO_AV_UDP_MCast_Flow_Handler, TAO_AV_TCP_Flow_Handler, and TAO_AV_UDP_Flow_Handler. Definition at line 578 of file Transport.cpp. References event_handler(), TAO_AV_Callback::get_timeout(), TAO_AV_Callback::handle_timeout(), and ACE_Event_Handler::reactor(). Referenced by TAO_AV_UDP_Flow_Handler::handle_timeout(), TAO_AV_TCP_Flow_Handler::handle_timeout(), and TAO_AV_UDP_MCast_Flow_Handler::handle_timeout().
00580 { 00581 int result = this->callback_->handle_timeout (this->timeout_arg_); 00582 if (result < 0) 00583 return result; 00584 ACE_Event_Handler *event_handler = this->event_handler (); 00585 ACE_Time_Value *timeout = 0; 00586 00587 this->callback_->get_timeout (timeout, this->timeout_arg_); 00588 if (timeout == 0) 00589 return 0; 00590 00591 this->timer_id_ = event_handler->reactor ()->schedule_timer (event_handler, 00592 0, 00593 *timeout); 00594 00595 if (this->timer_id_ < 0) 00596 return -1; 00597 00598 return 0; 00599 } |
|
Definition at line 614 of file Transport.cpp.
00615 { 00616 this->protocol_object_ = protocol_object; 00617 } |
|
set/get protocol_object.
Definition at line 620 of file Transport.cpp. Referenced by TAO_AV_UDP_Connector::connect(), TAO_AV_TCP_Acceptor::make_svc_handler(), TAO_AV_TCP_Connector::make_svc_handler(), and TAO_AV_UDP_Acceptor::open_i().
00621 { 00622 return this->protocol_object_; 00623 } |
|
Schedule timer. Uses the get_timeout method on the callback.
Definition at line 527 of file Transport.cpp. References event_handler(), TAO_AV_Callback::get_timeout(), and ACE_Singleton< TYPE, ACE_LOCK >::instance(). Referenced by TAO_AV_UDP_Connector::activate_svc_handler(), TAO_AV_UDP_Acceptor::activate_svc_handler(), TAO_AV_Callback::schedule_timer(), and start().
00528 { 00529 ACE_Event_Handler *event_handler = this->event_handler (); 00530 ACE_Time_Value *tv = 0; 00531 00532 this->callback_->get_timeout (tv, this->timeout_arg_); 00533 if (tv == 0) 00534 return 0; 00535 00536 this->timer_id_ = 00537 TAO_AV_CORE::instance()->reactor ()->schedule_timer (event_handler, 00538 0, 00539 *tv); 00540 00541 if (this->timer_id_ < 0) 00542 return -1; 00543 00544 return 0; 00545 } |
|
set the remote address.
Reimplemented in TAO_AV_UDP_Flow_Handler. Definition at line 503 of file Transport.cpp. Referenced by TAO_AV_UDP_Connector::connect(), and TAO_FlowSpec_Entry::set_peer_addr().
00504 {
00505 return 0;
00506 }
|
|
Start/stop the flow handler.
Definition at line 509 of file Transport.cpp. References TAO_AV_Callback::handle_start(), and schedule_timer().
00510 { 00511 this->callback_->handle_start (); 00512 switch (role) 00513 { 00514 // only for producer we register for the timeout. 00515 case TAO_FlowSpec_Entry::TAO_AV_PRODUCER: 00516 { 00517 this->schedule_timer (); 00518 } 00519 break; 00520 default: 00521 break; 00522 } 00523 return 0; 00524 } |
|
Definition at line 559 of file Transport.cpp. References ACE_DEBUG, event_handler(), TAO_AV_Callback::handle_stop(), LM_DEBUG, ACE_Event_Handler::reactor(), and TAO_debug_level.
00560 { 00561 this->callback_->handle_stop (); 00562 switch (role) 00563 { 00564 case TAO_FlowSpec_Entry::TAO_AV_PRODUCER: 00565 { 00566 int result = this->event_handler ()->reactor ()->cancel_timer (this->timer_id_); 00567 if (result < 0) 00568 if (TAO_debug_level > 0) ACE_DEBUG ((LM_DEBUG,"TAO_AV_Flow_Handler::stop:cancel_timer failed\n")); 00569 } 00570 break; 00571 default: 00572 break; 00573 } 00574 return 0; 00575 } |
|
get the transport.
Reimplemented in TAO_AV_TCP_Flow_Handler, and TAO_AV_UDP_Flow_Handler. Definition at line 608 of file Transport.cpp. Referenced by TAO_AV_UDP_Connector::connect(), and TAO_AV_UDP_Acceptor::open_i().
00609 { 00610 return this->transport_; 00611 } |
|
Definition at line 148 of file Transport.h. |
|
Definition at line 149 of file Transport.h. |
|
Definition at line 151 of file Transport.h. |
|
Definition at line 152 of file Transport.h. |
|
Definition at line 150 of file Transport.h. |
|
Definition at line 147 of file Transport.h. |