From f7c8251a088332d7b78f911357539b9b24b582e9 Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Mon, 19 Sep 2016 22:35:53 -0400 Subject: Updated documentation --- ossig.h | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'ossig.h') diff --git a/ossig.h b/ossig.h index 27df5562..ca5398a4 100644 --- a/ossig.h +++ b/ossig.h @@ -20,11 +20,22 @@ NAMESPACE_BEGIN(CryptoPP) #if defined(CRYPTOPP_BSD_AVAILABLE) || defined(CRYPTOPP_UNIX_AVAILABLE) || defined(CRYPTOPP_DOXYGEN_PROCESSING) //! \brief Signal handler function pointer -//! \sa SignalHandler +//! \details SignalHandlerFn is provided as a stand alone function pointer with external "C" linkage +//! \sa SignalHandler, NullSignalHandler extern "C" { typedef void (*SignalHandlerFn) (int); }; +//! \brief Null signal handler function +//! \param unused the signal number +//! \details NullSignalHandler is provided as a stand alone function with external "C" linkage +//! and not a static member function due to the the member function's implicit +//! external "C++" linkage. +//! \sa SignalHandler, SignalHandlerFn +extern "C" { + inline void NullSignalHandler(int unused) {CRYPTOPP_UNUSED(unused);} +}; + //! Signal handler for Linux and Unix compatibles //! \tparam S Signal number //! \tparam O Flag indicating exsting handler should be overwriiten @@ -38,7 +49,7 @@ extern "C" { //! \warning Do not use SignalHandler in a code block that uses setjmp or longjmp //! because the destructor may not run. //! \since Crypto++ 5.6.5 -//! \sa SignalHandlerFn, \ref CRYPTOPP_ASSERT "CRYPTOPP_ASSERT", DebugTrapHandler +//! \sa NullSignalHandler, SignalHandlerFn, \ref CRYPTOPP_ASSERT "CRYPTOPP_ASSERT", DebugTrapHandler template struct SignalHandler { @@ -72,7 +83,7 @@ struct SignalHandler if (m_old.sa_handler != 0 && !O) break; // Sun Studio 12.2-12.4 needs the two casts, and they must be C-style casts - new_handler.sa_handler = (SignalHandlerFn)(pfn ? pfn : (SignalHandlerFn)&SignalHandler::NullHandler); + new_handler.sa_handler = (pfn ? pfn : &NullSignalHandler); new_handler.sa_flags = (pfn ? flags : 0); ret = sigemptyset (&new_handler.sa_mask); @@ -97,8 +108,6 @@ private: struct sigaction m_old; bool m_installed; - static void NullHandler(int /*unused*/) { /* continue*/ } - private: // Not copyable SignalHandler(const SignalHandler &); -- cgit v1.2.1