libepp_nicbr
BeautifierHandlers.H
Go to the documentation of this file.
1 /* ${copyright}$ */
2 /* $Id: BeautifierHandlers.H 1086 2010-12-10 13:07:28Z eduardo $ */
7 #ifndef __BEAUTIFIER_HANDLERS_H__
8 #define __BEAUTIFIER_HANDLERS_H__
9 
10 #include <memory>
11 #include <string>
12 #include <vector>
13 
14 #include <xercesc/sax/HandlerBase.hpp>
15 
16 #include "libepp_nicbr.H"
17 
18 using std::auto_ptr;
19 using std::string;
20 using std::vector;
21 
22 XERCES_CPP_NAMESPACE_USE
23 
24 LIBEPP_NICBR_NS_BEGIN
25 
27 struct UserData {
28  string input_txt;
29  string output_txt;
30 };
31 
33 class BeautifierHandlers : public XERCES_CPP_NAMESPACE_QUALIFIER HandlerBase
34 {
35 public:
37 
40  BeautifierHandlers(UserData *pretty_data);
41 
44 
46 
50  void startElement(const XMLCh* const name, AttributeList& attributes);
51 
53 
57  void characters(const XMLCh* const chars,
58 #if XERCES_VERSION_MAJOR == 2
59  const unsigned int length
60 #else
61  const XMLSize_t length
62 #endif
63  );
64 
66 
69  void endElement(const XMLCh* const chars);
70 
72 
75  void warning(const SAXParseException& exc);
76 
78 
81  void error(const SAXParseException& exc);
82 
84 
87  void fatalError(const SAXParseException& exc);
88 
89 private:
92  // another character event so it is necessary to buffer the characters
93  // until the end
94  void chars_handler();
95 
97 
101  string str_transcode(const XMLCh *const to_transcode);
102 
104 
108  string truncate(const string &line);
109 
111 
114  string alltrim(const string& buffer);
115 
117 
122  int split(const string& buffer, vector<string>& words);
123 
125  enum eventType {
126  NONE = 0,
127  START = 1,
128  CHARACTERS = 2,
129  END = 3
130  };
131 
133  int _depth;
134 
136  UserData *_user_data;
137 
139  eventType _last_event;
140 
142  eventType _last_non_chars_event;
143 
145  string _to_be_printed;
146 
148  int _left_margin;
149 
151  string _element_name;
152 
154  bool _truncated_txt;
155 
157  string _tag_margin;
158 
160  string _buffered_chars;
161 };
162 
163 LIBEPP_NICBR_NS_END
164 #endif //__BEAUTIFIER_HANDLERS_H__
~BeautifierHandlers()
Destructor.
void endElement(const XMLCh *const chars)
End Element Handler.
void startElement(const XMLCh *const name, AttributeList &attributes)
Start Element Handler.
Project defines.
void warning(const SAXParseException &exc)
Handle SAXParseException in case of warning.
Beautifier Handlers Class.
Definition: BeautifierHandlers.H:33
void characters(const XMLCh *const chars, const XMLSize_t length)
Characters Handler.
User Data.
Definition: BeautifierHandlers.H:27
void error(const SAXParseException &exc)
Handle SAXParseException in case of error.
BeautifierHandlers(UserData *pretty_data)
Constructor.
void fatalError(const SAXParseException &exc)
Handle SAXParseException in case of fatal error.