fintp_log
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
AbstractLogPublisher.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 ABSTRACTLOGPUBLISHER_H
22 #define ABSTRACTLOGPUBLISHER_H
23 
24 #include "AppExceptions.h"
25 #include <xercesc/dom/DOM.hpp>
26 
27 using namespace std;
28 XERCES_CPP_NAMESPACE_USE
29 
30 namespace FinTP
31 {
34  {
35  protected :
36  // .ctor
38 
39  bool m_Default;
41 
42  public:
43  // destructor
44  virtual ~AbstractLogPublisher();
45 
46  // methods
47  virtual void Publish( const AppException& exception ) = 0;
48 
49  static string FormatException( const AppException& exception );
50 
51  // serializes the exception to an XMLDocument
52  static string SerializeToXmlStr( const AppException& except );
53  static xercesc::DOMDocument* SerializeToXml( const AppException& exception );
54 
55  static AppException DeserializeFromXml( const xercesc::DOMDocument *doc );
56 
57  void setDefault( const bool def ){ m_Default = def; }
58 
59  // used to filter what exceptions this publisher.. publishes
60  void setEventFilter( const int eventFilter ) { m_EventFilter = eventFilter; }
61  int eventFilter( void ){ return m_EventFilter; }
62  };
63 }
64 
65 #endif // ABSTRACTLOGPUBLISHER_H