-
Notifications
You must be signed in to change notification settings - Fork 2
/
drerror.cpp
121 lines (79 loc) · 3.17 KB
/
drerror.cpp
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
/*
Deriv is a cross-platform client for th Wired 2.0 protocol
Copyright (C) 2014 Rafael Warnault, [email protected]
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <QDebug>
#include "drerror.h"
DRError::DRError(int code, QHash<DRErrorKeys, QString> params, QString domain, QObject *parent) : QObject(parent)
{
QString descriptionOption;
QString reasonOption;
this->_code = code;
this->_params = params;
this->_domain = domain;
if(!params.isEmpty()) {
descriptionOption = params.value(DRErrorDescriptionKey);
reasonOption = params.value(DRErrorReasonKey);
}
switch (this->_code) {
case WIAddressLookupFailed:
this->_description = "Address Lookup Failed";
this->_reason = QString("Could not resolve the address %1: %2").arg(descriptionOption, reasonOption);
break;
case WISocketConnectFailed:
this->_description = "Connect Failed";
this->_reason = QString("Could not connect to %1: %2").arg(descriptionOption, reasonOption);
break;
case WISocketWriteFailed:
this->_description = "Socket Write Failed";
this->_reason = QString("Could not write to %1: %2").arg(descriptionOption, reasonOption);
break;
case WISocketReadFailed:
this->_description = "Socket Read Failed";
this->_reason = QString("Could not read from %1: %2").arg(descriptionOption, reasonOption);
break;
case WIP7SpecLoadFailed:
this->_description = "Protocol Specification Load Failed";
this->_reason = QString("Could not load specification %1: %2").arg(descriptionOption, reasonOption);
break;
default:
this->_description = "Unknow Error";
this->_reason = "Unknow Error Reason";
break;
}
}
DRError::DRError(wi_p7_message_t *message, QObject *parent) : QObject() {
wi_p7_enum_t error;
wi_p7_message_get_enum_for_name(message, &error, WI_STR("wired.error"));
this->_code = (int)error;
this->_domain = "fr.read-write.Deriv";
switch (this->_code) {
case WCWiredProtocolLoginFailed:
this->_description = "Login Failed";
this->_reason = "Could not login, the user name and/or password you supplied was rejected.";
break;
default:
this->_description = "Unknow Client Error";
this->_reason = "Unknow Client Error Reason";
break;
}
}
int DRError::errorCode() {
return this->_code;
}
QString DRError::errorDescription() {
return this->_description;
}
QString DRError::errorReason() {
return this->_reason;
}