summaryrefslogtreecommitdiffabout
path: root/include
authorMichael Krelin <hacker@klever.net>2008-01-05 21:43:51 (UTC)
committer Michael Krelin <hacker@klever.net>2008-01-05 22:03:55 (UTC)
commita0719fb611507d8b9962b87c600855d8837fc266 (patch) (unidiff)
treec4d2252f876dfdaf71f41affc5a2324762eca84e /include
parent7bde7f66284b47a75bbceadc360e7f03550ace21 (diff)
downloadlibopkele-a0719fb611507d8b9962b87c600855d8837fc266.zip
libopkele-a0719fb611507d8b9962b87c600855d8837fc266.tar.gz
libopkele-a0719fb611507d8b9962b87c600855d8837fc266.tar.bz2
added htmltidy dependency
- added libtidy detection to configure - added tidy flags to libopkele.pc.in - added primitive wrapper classes - added tidy exception class Signed-off-by: Michael Krelin <hacker@klever.net>
Diffstat (limited to 'include') (more/less context) (ignore whitespace changes)
-rw-r--r--include/Makefile.am2
-rw-r--r--include/opkele/exception.h11
-rw-r--r--include/opkele/tidy.h73
3 files changed, 85 insertions, 1 deletions
diff --git a/include/Makefile.am b/include/Makefile.am
index 1076c12..51dcea1 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -7,15 +7,15 @@ nobase_include_HEADERS = \
7 opkele/server.h \ 7 opkele/server.h \
8 opkele/consumer.h \ 8 opkele/consumer.h \
9 opkele/extension.h \ 9 opkele/extension.h \
10 opkele/sreg.h \ 10 opkele/sreg.h \
11 opkele/extension_chain.h \ 11 opkele/extension_chain.h \
12 opkele/xconsumer.h \ 12 opkele/xconsumer.h \
13 opkele/xserver.h \ 13 opkele/xserver.h \
14 opkele/discovery.h \ 14 opkele/discovery.h \
15 opkele/uris.h \ 15 opkele/uris.h \
16 opkele/tr1-mem.h 16 opkele/tr1-mem.h
17EXTRA_DIST = \ 17EXTRA_DIST = \
18 opkele/data.h \ 18 opkele/data.h \
19 opkele/curl.h opkele/expat.h \ 19 opkele/curl.h opkele/expat.h opkele/tidy.h \
20 opkele/util.h \ 20 opkele/util.h \
21 opkele/debug.h 21 opkele/debug.h
diff --git a/include/opkele/exception.h b/include/opkele/exception.h
index c200a13..a8c3339 100644
--- a/include/opkele/exception.h
+++ b/include/opkele/exception.h
@@ -244,24 +244,35 @@ namespace opkele {
244 * libcurl 244 * libcurl
245 */ 245 */
246 class exception_curl : public exception_network { 246 class exception_curl : public exception_network {
247 public: 247 public:
248 CURLcode _error; 248 CURLcode _error;
249 string _curl_string; 249 string _curl_string;
250 exception_curl(OPKELE_E_PARS); 250 exception_curl(OPKELE_E_PARS);
251 exception_curl(OPKELE_E_PARS,CURLcode e); 251 exception_curl(OPKELE_E_PARS,CURLcode e);
252 ~exception_curl() throw() { } 252 ~exception_curl() throw() { }
253 }; 253 };
254 254
255 /** 255 /**
256 * htmltidy related error occured
257 */
258 class exception_tidy : public exception {
259 public:
260 int _rc;
261 exception_tidy(OPKELE_E_PARS);
262 exception_tidy(OPKELE_E_PARS,int r);
263 ~exception_tidy() throw() { }
264 };
265
266 /**
256 * exception thrown in case of failed discovery 267 * exception thrown in case of failed discovery
257 */ 268 */
258 class failed_discovery : public exception { 269 class failed_discovery : public exception {
259 public: 270 public:
260 failed_discovery(OPKELE_E_PARS) 271 failed_discovery(OPKELE_E_PARS)
261 : exception(OPKELE_E_CONS) { } 272 : exception(OPKELE_E_CONS) { }
262 }; 273 };
263 274
264 /** 275 /**
265 * unsuccessfull xri resolution 276 * unsuccessfull xri resolution
266 */ 277 */
267 class failed_xri_resolution : public failed_discovery { 278 class failed_xri_resolution : public failed_discovery {
diff --git a/include/opkele/tidy.h b/include/opkele/tidy.h
new file mode 100644
index 0000000..888e7d4
--- a/dev/null
+++ b/include/opkele/tidy.h
@@ -0,0 +1,73 @@
1#ifndef __OPKELE_TIDY_H
2#define __OPKELE_TIDY_H
3
4#include <cassert>
5#include <tidy.h>
6#include <buffio.h>
7
8namespace opkele {
9 namespace util {
10
11 class tidy_buf_t {
12 public:
13 TidyBuffer _x;
14
15 tidy_buf_t() { tidyBufInit(&_x); }
16 virtual ~tidy_buf_t() throw() {
17 tidyBufFree(&_x); }
18
19 inline operator const TidyBuffer&(void) const { return _x; }
20 inline operator TidyBuffer&(void) { return _x; }
21
22 inline operator const char*(void) const { return (const char*)_x.bp; }
23 inline operator char*(void) { return (char*)_x.bp; }
24
25 inline const char *c_str() const {
26 return (const char*)_x.bp; }
27 inline size_t size() const {
28 return _x.size; }
29 };
30
31 class tidy_doc_t {
32 public:
33 TidyDoc _x;
34
35 tidy_doc_t() : _x(0) { }
36 tidy_doc_t(TidyDoc x) : _x(x) { }
37 virtual ~tidy_doc_t() throw() {
38 if(_x) tidyRelease(_x); }
39
40 tidy_doc_t& operator=(TidyDoc x) {
41 if(_x) tidyRelease(_x);
42 _x = x;
43 return *this;
44 }
45
46 operator const TidyDoc(void) const { return _x; }
47 operator TidyDoc(void) { return _x; }
48
49 inline bool opt_set(TidyOptionId o,bool v) {
50 assert(_x);
51 return tidyOptSetBool(_x,o,v?yes:no); }
52 inline bool opt_set(TidyOptionId o,int v) {
53 assert(_x);
54 return tidyOptSetInt(_x,o,v); }
55
56 inline int parse_string(const string& s) {
57 assert(_x);
58 return tidyParseString(_x,s.c_str()); }
59 inline int clean_and_repair() {
60 assert(_x);
61 return tidyCleanAndRepair(_x); }
62 inline int save_buffer(TidyBuffer& ob) {
63 assert(_x);
64 return tidySaveBuffer(_x,&ob); }
65
66 static inline TidyDoc create() {
67 return tidyCreate(); }
68 };
69
70 }
71}
72
73#endif /* __OPKELE_TIDY_H */