fintp_ws
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
SequenceFault.h
Go to the documentation of this file.
1 /*
2 * FinTP - Financial Transactions Processing Application
3 * Copyright (C) 2013 Business Information Systems (Allevo) S.R.L.
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>
17 * or contact Allevo at : 031281 Bucuresti, 23C Calea Vitan, Romania,
18 * phone +40212554577, office@allevo.ro <mailto:office@allevo.ro>, www.allevo.ro.
19 */
20 
21 #ifndef SEQUENCEFAULT_H
22 #define SEQUENCEFAULT_H
23 
24 #include "../WSSerializable.h"
25 #include "SequenceResponse.h"
26 
27 namespace wsrm
28 {
30  {
31  public :
32 
33  // failed batches with all messages rejected will have seqfault != NOSEQFAULT
34  // failed batches with distinct messages rejected will have seqfault == NOSEQFAULT
35  static const string NOSEQFAULT;
36 
37  SequenceFault( const string& identifier = "", const string& errorCode = SequenceFault::NOSEQFAULT );
38  ~SequenceFault();
39 
40  string getErrorCode() const { return m_ErrorCode; }
41  void setErrorCode( const string& errorCode ) { m_ErrorCode = errorCode; }
42  string getErrorReason() const { return m_ErrorReason; }
43  void setErrorReason( const string& errorReason ) { m_ErrorReason = errorReason; }
44 
45  bool IsNack( const string reference ) const;
46  bool IsAck( const unsigned long sequence ) const;
47 
48  static SequenceFault* Deserialize( DOMNode* root, const string& messageFilename );
49 
50  protected :
51 
52  string internalSerialize() const;
53  DOMNode* internalSerialize( DOMNode* root ) const;
54 
55  WSSerializable* internalDeserialize( const DOMNode* data );
56 
57  private :
58 
59  string m_ErrorCode, m_ErrorReason;
60  };
61 }
62 
63 #endif // SEQUENCEFAULT_H