libepp_nicbr
Response.H
Go to the documentation of this file.
1 /* ${copyright}$ */
2 /* $Id: Response.H 1200 2014-05-07 17:12:04Z cesar $ */
7 #ifndef __RESPONSE_H__
8 #define __RESPONSE_H__
9 
10 #include <string>
11 #include <list>
12 #include <map>
13 
14 #include "libepp_nicbr.H"
15 #include "StrUtil.H"
16 
17 using std::string;
18 using std::list;
19 using std::map;
20 
21 LIBEPP_NICBR_NS_BEGIN
22 
24 class Response
25 {
26 public:
28  enum ResultCode {
29  UNSET = -1,
30  OK = 1000,
31  OK_ACTION_PENDING = 1001,
32  OK_NO_MESSAGES = 1300,
33  OK_ACK_DEQUEUE = 1301,
34  OK_ENDING_SESSION = 1500,
35  UNKNOWN_COMMAND = 2000,
36  COMMAND_SYNTAX_ERROR = 2001,
37  COMMAND_USE_ERROR = 2002,
38  PARAMETER_MISSING = 2003,
39  PARAMETER_RANGE_ERROR = 2004,
40  PARAMETER_SYNTAX_ERROR = 2005,
41  UNIMPLEMENTED_VERSION = 2100,
42  UNIMPLEMENTED_COMMAND = 2101,
43  UNIMPLEMENTED_OPTION = 2102,
44  UNIMPLEMENTED_EXTENSION = 2103,
45  BILLING_FAILURE = 2104,
46  NOT_RENEWABLE = 2105,
47  NOT_TRANSFERABLE = 2106,
48  AUTHENTICATION_ERROR = 2200,
49  AUTHORIZATION_ERROR = 2201,
50  INVALID_AUTHORIZATION_INFO = 2202,
51  PENDING_TRANSFER = 2300,
52  NOT_PENDING_TRANSFER = 2301,
53  OBJECT_EXISTS = 2302,
54  OBJECT_DOESNT_EXIST = 2303,
55  STATUS_PROHIBITS_OPERATION = 2304,
56  ASSOCIATION_PROHIBITS_OPERATION = 2305,
57  PARAMETER_POLICY_ERROR = 2306,
58  UNIMPLEMENTED_SERVICE = 2307,
59  DATA_MGMT_POLICY_VIOLATION = 2308,
60  COMMAND_FAILED = 2400,
61  COMMAND_FAILED_CLOSING_CONN = 2500,
62  AUTHENTICATION_ERROR_CLOSING_CONN = 2501,
63  SESSION_LIMIT_EXCEEDED = 2502
64  };
65 
66  struct ResultExtValue {
67  string value;
68  string xmlns;
69  string reason;
70  };
71 
72  struct ResultInfo {
73  string msg;
74  list<ResultExtValue> ext_values;
75  };
76 
78  Response(bool reset = true)
79  {
80  if (reset) {
81  this->reset();
82  }
83  }
84 
86 
89  void set_clTRID(const string &clTRID) { _clTRID = clTRID; }
90 
92 
95  void set_svTRID(const string &svTRID) { _svTRID = svTRID; }
96 
98 
101  void set_result_lang(const string &result_lang)
102  {
103  _result_lang = result_lang;
104  }
105 
107 
114  void insert_result(const ResultCode &code, const string &msg,
115  const string &value = "", const string &xmlns = "",
116  const string &reason = "")
117  {
118  _result_list[code].msg = msg;
119 
120  if (xmlns != "" || reason != "") {
121  struct ResultExtValue extValue;
122  if (value != "") {
123  extValue.value = value;
124  } else {
125  extValue.value = "<xml>Description unavailable</xml>";
126  }
127  extValue.xmlns = xmlns;
128  extValue.reason = reason;
129  _result_list[code].ext_values.push_back(extValue);
130  }
131  }
132 
134 
137  string get_clTRID() const { return _clTRID; }
138 
140 
143  string get_svTRID() const { return _svTRID; }
144 
146 
149  string get_result_lang() { return _result_lang; }
150 
152 
155  map<ResultCode, ResultInfo> get_result_list() const
156  {
157  return _result_list;
158  }
159 
161  void reset()
162  {
163  _clTRID = "";
164  _svTRID = "";
165  _result_lang = "en";
166  _result_list.clear();
167  }
168 
170  virtual ~Response() {}
171 
172 protected:
174  string _clTRID;
175 
177  string _svTRID;
178 
180  string _result_lang;
181 
183  map<ResultCode, ResultInfo> _result_list;
184 };
185 
186 LIBEPP_NICBR_NS_END
187 #endif //__RESPONSE_H__
void insert_result(const ResultCode &code, const string &msg, const string &value="", const string &xmlns="", const string &reason="")
Sets a result element.
Definition: Response.H:114
EPP Response Class.
Definition: Response.H:24
Definition: Response.H:66
Project defines.
string _result_lang
Result language.
Definition: Response.H:180
string get_clTRID() const
Returns the client transaction ID.
Definition: Response.H:137
virtual ~Response()
virtual destructor
Definition: Response.H:170
Response(bool reset=true)
Default constructor.
Definition: Response.H:78
string _clTRID
Client transaction ID.
Definition: Response.H:174
Definition: Response.H:72
string get_result_lang()
Returns the result message language.
Definition: Response.H:149
void set_clTRID(const string &clTRID)
Sets the client transaction ID.
Definition: Response.H:89
void set_svTRID(const string &svTRID)
Sets the server transaction ID.
Definition: Response.H:95
String Manipulation Utilities.
string get_svTRID() const
Returns the servers transaction ID.
Definition: Response.H:143
ResultCode
Result Codes - See RFC 3730 - Session 3.
Definition: Response.H:28
string _svTRID
Server transaction ID.
Definition: Response.H:177
void set_result_lang(const string &result_lang)
Sets the result message language.
Definition: Response.H:101
map< ResultCode, ResultInfo > get_result_list() const
Returns the list of result elements.
Definition: Response.H:155
void reset()
reset attributes
Definition: Response.H:161
map< ResultCode, ResultInfo > _result_list
Result elements list.
Definition: Response.H:183