EC_Timeout_Generator.cpp

Go to the documentation of this file.
00001 // EC_Timeout_Generator.cpp,v 1.14 2006/03/14 06:14:25 jtc Exp
00002 
00003 #include "orbsvcs/Event/EC_Timeout_Generator.h"
00004 #include "orbsvcs/Event/EC_Timeout_Filter.h"
00005 #include "orbsvcs/Event_Service_Constants.h"
00006 
00007 #if ! defined (__ACE_INLINE__)
00008 #include "orbsvcs/Event/EC_Timeout_Generator.i"
00009 #endif /* __ACE_INLINE__ */
00010 
00011 ACE_RCSID (Event, 
00012            EC_Timeout_Generator, 
00013            "EC_Timeout_Generator.cpp,v 1.14 2006/03/14 06:14:25 jtc Exp")
00014 
00015 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00016 
00017 TAO_EC_Timeout_Generator::~TAO_EC_Timeout_Generator (void)
00018 {
00019 }
00020 
00021 // ****************************************************************
00022 
00023 int
00024 TAO_EC_Timeout_Adapter::handle_timeout (const ACE_Time_Value & /* tv */,
00025                                         const void *vp)
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   ACE_TRY_NEW_ENV
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                               ACE_ENV_ARG_PARAMETER);
00050       ACE_TRY_CHECK;
00051     }
00052   ACE_CATCHANY
00053     {
00054       return -1;
00055     }
00056   ACE_ENDTRY;
00057 
00058   return 0;
00059 }
00060 
00061 TAO_END_VERSIONED_NAMESPACE_DECL

Generated on Thu Nov 9 13:11:09 2006 for TAO_RTEvent by doxygen 1.3.6