BAOS SDK v2  1.0.1
An SDK providing access to IP-BAOS devices through BAOS binary protocol version 2.x
Exception.h
Go to the documentation of this file.
1 //
2 // Copyright (c) 2002-2023 WEINZIERL ENGINEERING GmbH
3 // All rights reserved.
4 //
5 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
6 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
7 // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
8 // SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY,
9 // WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
10 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
11 //
12 
13 #include "baos/BaosLib_export.h"
14 
15 #include "wzcpp/features/error/Exception.h"
16 
17 #ifndef __BAOSLIB_EXCEPTION_H__
18 #define __BAOSLIB_EXCEPTION_H__
19 
21 #include <sstream>
23 
29 namespace wz::baos
30 {
31 
32 
40 enum class ErrorCodes
41 {
42  BaosError = 2,
43  SocketError = 3,
44  AddressResolveError = 4,
45  TCPConnectionError = 5,
46  TCPConnectionClosed = 6,
47  SocketRecvError = 7,
48  SocketSendError = 8,
49  SocketInitError = 9,
50  SocketRxBufferToSmall = 10,
51  ResponseError = 20,
52  ResponseTimeoutError = 21,
53  MaleformedTelegram = 22,
54  ClosedConnection = 51,
55  StoppedConnection = 52
56 };
57 
58 DECLARE_WZ_EXCEPTION(WzBaosException,
59  ErrorCodes::BaosError,
60  wzcpp::error::WzBaseException);
61 DECLARE_WZ_EXCEPTION(WzSocketException,
62  ErrorCodes::SocketError,
63  WzBaosException);
64 DECLARE_WZ_EXCEPTION(WzIpAddressResolveException,
65  ErrorCodes::AddressResolveError,
66  WzSocketException);
67 DECLARE_WZ_EXCEPTION(WzTCPConnectionException,
68  ErrorCodes::TCPConnectionError,
69  WzSocketException);
70 DECLARE_WZ_EXCEPTION(WzTCPConnectionClosedException,
71  ErrorCodes::TCPConnectionClosed,
72  WzSocketException);
73 DECLARE_WZ_EXCEPTION(WzRecvException,
74  ErrorCodes::SocketRecvError,
75  WzSocketException);
76 DECLARE_WZ_EXCEPTION(WzSendException,
77  ErrorCodes::SocketSendError,
78  WzSocketException);
79 DECLARE_WZ_EXCEPTION(WzSocketInitException,
80  ErrorCodes::SocketInitError,
81  WzSocketException);
82 DECLARE_WZ_EXCEPTION(WzRxBufferOverflowException,
83  ErrorCodes::SocketRxBufferToSmall,
84  WzSocketException);
86 
87 DECLARE_WZ_EXCEPTION(WzMaleformedTelegramException,
88  ErrorCodes::MaleformedTelegram,
89  WzBaosException);
90 DECLARE_WZ_EXCEPTION(WzResponseException,
91  ErrorCodes::ResponseError,
92  WzBaosException);
93 DECLARE_WZ_EXCEPTION(WzResponseTimeoutException,
94  ErrorCodes::ResponseTimeoutError,
95  WzBaosException);
96 DECLARE_WZ_EXCEPTION(WzClosedConnectionException,
97  ErrorCodes::ClosedConnection,
98  WzBaosException);
100  WzStoppedConnectionException,
101  ErrorCodes::StoppedConnection,
102  WzBaosException);
103 
104 } // namespace wz::baos
105 
106 #endif // __BAOSLIB_EXCEPTION_H__
Global BAOS sdk namespace.
Definition: config.h:62
ErrorCodes
Custom error codes for each exception.
Definition: Exception.h:41
DECLARE_WZ_EXCEPTION(WzBaosException, ErrorCodes::BaosError, wzcpp::error::WzBaseException)
Generic exception from this SDK.