fintp_connectors
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros Pages
MqFetcher.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 MQFETCHER_H
22 #define MQFETCHER_H
23 
24 #include "MQ/MqWatcher.h"
25 #include "TransportHelper.h"
26 #include "../Endpoint.h"
27 #include "Swift/SAAFilter.h"
28 #include "Swift/SwiftFormatFilter.h"
29 
30 #ifndef NO_DB
31  #include "Database.h"
32  #include "DatabaseProvider.h"
33 #endif
34 
35 using namespace std;
36 
37 class MqFetcher : public Endpoint
38 {
39  protected :
40 
41  // methods for controlling the endpoint
42  void internalStart();
43  void internalStop();
44 
45  public:
46 
47  // constructor
48  MqFetcher();
49 
50  //destructor
51  ~MqFetcher();
52 
53  // called before start. allows the endpoint to prepare environment
54  void Init();
55 
56  // methods for transactional execution
59  string Prepare();
60 
62  void Commit();
63 
65  void Abort();
66 
68  void Rollback();
69 
72  void Process( const string& correlationId );
73 
74  bool moreMessages() const;
75 
76  pthread_t getWatcherThreadId() { return m_Watcher.getThreadId(); }
77 
78  private :
81  string GetIDImageReference( XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *doc );
82 
83  MqWatcher m_Watcher;
84 
85  string m_WatchQueue;
88 
90  SwiftFormatFilter* m_SAASingleFilter;
91  SAAFilter* m_SAAGroupFilter;
92 
93  string m_SSLKeyRepos, m_SSLCypherSpec, m_SSLPeerName;
94  bool m_IsSigned;
95  string m_CertificateFileName, m_CertificatePasswd;
96 
99  unsigned long m_CurrentMessageLength;
100 
101  int m_CurrentSequence; // sequence of the currently processing message in batch
102 
103  //if BatchXml processing ( config ) it is the BatchXsltFile specified in config
105 
106  TransportHelper* m_CurrentHelper;
107 
108 #ifndef NO_DB
109  Database *m_CurrentDatabase;
110  DatabaseProviderFactory *m_CurrentProvider;
111 #endif
112 
114  string m_DatabaseName; //Connector Database Name
115  string m_UserName; //Connector User
116  string m_UserPassword; //Connector Password
117 
118  string m_IDCertificateFileName, m_IDCertificatePasswd;
119  string m_LAUKey;
120 
125 };
126 
127 #endif //MQFETCHER_H