diff options
Diffstat (limited to 'profiling/common/include/SocketConnectionException.hpp')
-rw-r--r-- | profiling/common/include/SocketConnectionException.hpp | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/profiling/common/include/SocketConnectionException.hpp b/profiling/common/include/SocketConnectionException.hpp new file mode 100644 index 0000000000..58b8a14d6d --- /dev/null +++ b/profiling/common/include/SocketConnectionException.hpp @@ -0,0 +1,51 @@ +// +// Copyright © 2020 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// +#pragma once + +#include <sstream> +#include <stdexcept> +#include <string> + +namespace armnnProfiling +{ + +/// Socket Connection Exception for profiling +class SocketConnectionException : public std::exception +{ +public: + explicit SocketConnectionException(const std::string& message, int socket) + : m_Message(message), m_Socket(socket), m_ErrNo(-1) + {}; + + explicit SocketConnectionException(const std::string& message, int socket, int errNo) + : m_Message(message), m_Socket(socket), m_ErrNo(errNo) + {}; + + /// @return - Error message of SocketProfilingConnection + virtual const char* what() const noexcept override + { + return m_Message.c_str(); + } + + /// @return - Socket File Descriptor of SocketProfilingConnection + /// or '-1', an invalid file descriptor + int GetSocketFd() const noexcept + { + return m_Socket; + } + + /// @return - errno of SocketProfilingConnection + int GetErrorNo() const noexcept + { + return m_ErrNo; + } + +private: + std::string m_Message; + int m_Socket; + int m_ErrNo; +}; + +} // namespace armnnProfiling |