blob: 5a5422eac08e8a854d3772c1a3e65fa57d0ae971 (
plain)
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
|
// QoS_Signal_Handler.cpp
// $Id$
#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*)
{
if (signum == SIGINT)
{
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;
}
|