예제 #1
0
int
Server_Timer::handle_timeout (ACE_Time_Value const &, void const *)
{
  Test::Payload pload (1024);
  pload.length (1024);

  ACE_OS::memset (pload.get_buffer(), 0, pload.length());

  try
    {
      if(CORBA::is_nil (this->echo_.in ()))
        return -1;

      Test::Echo_var echo =
        Test::Echo::_duplicate (this->echo_.in ());

      echo->echo_payload (pload);
    }
  catch (const CORBA::Exception&)
    {
      this->echo_ = Test::Echo::_nil ();
      this->reactor ()->cancel_timer (this);
      return -1;
    }

  return 0;
}