#include <EC_Timeout_Generator.h>
Inheritance diagram for TAO_EC_Timeout_Adapter:
Public Member Functions | |
TAO_EC_Timeout_Adapter (void) | |
Default construction. | |
Private Member Functions | |
virtual int | handle_timeout (const ACE_Time_Value &tv, const void *act) |
Casts <act> to EC_Filter and dispatches an event to it. |
ACE timer queues (including the reactor) use Event_Handlers to dispatch events, but we want to receive them in EC_Filters, this class is and adaptor for that purpose.
Definition at line 81 of file EC_Timeout_Generator.h.
TAO_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE TAO_EC_Timeout_Adapter::TAO_EC_Timeout_Adapter | ( | void | ) |
int TAO_EC_Timeout_Adapter::handle_timeout | ( | const ACE_Time_Value & | tv, | |
const void * | act | |||
) | [private, virtual] |
Casts <act> to EC_Filter and dispatches an event to it.
Reimplemented from ACE_Event_Handler.
Definition at line 24 of file EC_Timeout_Generator.cpp.
References RtecEventComm::Event::header, TAO_EC_Timeout_Filter::push_to_proxy(), TAO_EC_Timeout_Filter::qos_info(), and TAO_EC_Timeout_Filter::type().
00026 { 00027 // ACE_DEBUG ((LM_DEBUG, 00028 // "TAO_EC_Timeout_Adapter::handle_timeout -" 00029 // " expire at %d:%d\n", 00030 // tv.sec (), tv.usec ())); 00031 00032 TAO_EC_Timeout_Filter *filter = 00033 static_cast<TAO_EC_Timeout_Filter*> (const_cast<void*> (vp)); 00034 00035 if (filter == 0) 00036 return 0; 00037 00038 try 00039 { 00040 RtecEventComm::Event e; 00041 e.header.type = filter->type (); 00042 e.header.source = 0; 00043 00044 RtecEventComm::EventSet single_event (1, 1, &e, 0); 00045 00046 TAO_EC_QOS_Info qos_info = filter->qos_info (); 00047 filter->push_to_proxy (single_event, 00048 qos_info); 00049 } 00050 catch (const CORBA::Exception&) 00051 { 00052 return -1; 00053 } 00054 00055 return 0; 00056 }