1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
// QoS_Signal_Handler.cpp
// $Id: QoS_Signal_Handler.cpp 91671 2010-09-08 18:39:23Z johnnyw $
#include "ace/Log_Msg.h"
#include "QoS_Signal_Handler.h"
// constructor.
QoS_Signal_Handler::QoS_Signal_Handler (ACE_QoS_Session *qos_session)
: qos_session_ (qos_session)
{
}
// Releases the QoS sessions gracefully.
int
QoS_Signal_Handler::handle_signal (int signum, siginfo_t *, ucontext_t*)
{
ACE_DEBUG ((LM_DEBUG,
"QoS_Signal_Handler::handle_signal\n"));
if (signum == SIGINT)
{
ACE_DEBUG ((LM_DEBUG,
"QoS_Signal_Handler::handle_signal SIGINT called\n"));
if (this->qos_session_->close () == -1)
ACE_ERROR_RETURN ((LM_ERROR,
"Unable to close the QoS session.\n"),
-1);
else
ACE_DEBUG ((LM_DEBUG,
"QoS Session with id %d closed successfully.\n",
this->qos_session_->session_id ()));
}
else
ACE_DEBUG ((LM_DEBUG,
"A signal other than SIGINT received.\nIgnoring.\n"));
return 0;
}
|