EBOOK-TOOLS
epub.h
Go to the documentation of this file.
1 #ifndef EPUB_H
2 #define EPUB_H 1
3 
4 #include <epub_shared.h>
5 /** \struct epub is a private struct containting information about the epub file */
6 struct epub;
7 
8 /** \struct eiterator is a private iterator struct */
9 struct eiterator;
10 struct titerator;
11 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif /* C++ */
15 
16  /**
17  This function accepts an epub filename. It then parses its information and
18  returns it as an epub struct.
19 
20  @param filename the name of the file to open
21  @param debug is the debug level (0=none, 1=errors, 2=warnings, 3=info)
22  @return epub struct with the information of the file or NULL on error
23 
24  */
25  EPUB_EXPORT struct epub *epub_open(const char *filename, int debug);
26 
27  /**
28  This function sets the debug level to the given level.
29 
30  @param filename is the name of the file to open
31  @param debug is the debug level (0=none, 1=errors, 2=warnings, 3=info)
32  */
33  EPUB_EXPORT void epub_set_debug(struct epub *epub, int debug);
34 
35  /**
36  returns the file with the give filename
37 
38  @param epub struct of the epub file we want to read from
39  @param filename the name of the file we want to read
40  @param pointer to where the file data is stored
41  @return the number of bytes read
42  */
43  EPUB_EXPORT int epub_get_ocf_file(struct epub *epub, const char *filename, char **data);
44 
45  /**
46  Frees the memory held by the given iterator
47 
48  @param it the iterator
49  */
50  EPUB_EXPORT void epub_free_iterator(struct eiterator *it);
51 
52  /**
53  This function closes a given epub. It also frees the epub struct.
54  So you can use it after calling this function.
55 
56  @param epub the struct of the epub to close.
57  */
58  EPUB_EXPORT int epub_close(struct epub *epub);
59 
60  /**
61  Debugging function dumping various file information.
62 
63  @param epub the struct of the epub to close.
64  */
65  EPUB_EXPORT void epub_dump(struct epub *epub);
66 
67 
68  /**
69  (Bad xml might cause some of it to be NULL).
70 
71  @param epub the struct .
72  */
73  EPUB_EXPORT unsigned char **epub_get_metadata(struct epub *epub, enum epub_metadata type,
74  int *size);
75 
76  /**
77  returns the file with the give filename. The file is looked
78  for in the data directory. (Useful for getting book files).
79 
80  @param epub struct of the epub file we want to read from
81  @param filename the name of the file we want to read
82  @param pointer to where the file data is stored
83  @return the number of bytes read
84  */
85  EPUB_EXPORT int epub_get_data(struct epub *epub, const char *name, char **data);
86 
87 
88  /**
89  Returns a book iterator of the requested type
90  for the given epub struct.
91 
92  @param epub struct of the epub file
93  @param type the iterator type
94  @param opt other options (ignored for now)
95  @return eiterator to the epub book
96  */
98  enum eiterator_type type, int opt);
99 
100  /**
101  updates the iterator to the next element and returns a pointer
102  to the data. the iterator handles the freeing of the memory.
103 
104  @param it the iterator
105  @return pointer to the data
106  */
107  EPUB_EXPORT char *epub_it_get_next(struct eiterator *it);
108 
109  /**
110  Returns a pointer to the iterator's data. the iterator handles
111  the freeing of the memory.
112 
113  @param it the iterator
114  @return pointer to the data
115  */
116  EPUB_EXPORT char *epub_it_get_curr(struct eiterator *it);
117 
118  /**
119  Returns a pointer to the url of the iterator's current data.
120  the iterator handles the freeing of the memory.
121 
122  @param it the iterator
123  @return pointer to the current data's url
124  */
125  EPUB_EXPORT char *epub_it_get_curr_url(struct eiterator *it);
126 
127  /**
128  Returns a book toc iterator of the requested type
129  for the given epub struct.
130 
131  @param epub struct of the epub file
132  @param type the iterator type
133  @param opt other options (ignored for now)
134  @return toc iterator to the epub book
135  */
137  enum titerator_type type, int opt);
138 
139 
140  /**
141  Returns 1 if the current entry is valid and 0 otherwise.
142 
143  @param tit the iterator
144  @return 1 if the current entry is valid and 0 otherwise
145  */
146  EPUB_EXPORT int epub_tit_curr_valid(struct titerator *tit);
147 
148  /**
149  Returns a pointer to the depth of the toc iterator's current entry.
150  the iterator handles the freeing of the memory.
151 
152  @param tit the iterator
153  @return pointer to the current entry's depth
154  */
156 
157  /**
158  Returns a pointer to the link of the toc iterator's current entry.
159  the iterator handles the freeing of the memory.
160 
161  @param tit the iterator
162  @return the current entry's depth
163  */
164  EPUB_EXPORT char *epub_tit_get_curr_link(struct titerator *tit);
165 
166  /**
167  Returns a pointer to the label of the toc iterator's current entry.
168  the iterator handles the freeing of the memory.
169 
170  @param tit the iterator
171  @return pointer to the current entry's lable
172  */
173  EPUB_EXPORT char *epub_tit_get_curr_label(struct titerator *tit);
174 
175  /**
176  Frees the memory held by the given iterator
177 
178  @param tit the iterator
179  */
180  EPUB_EXPORT void epub_free_titerator(struct titerator *tit);
181 
182  /**
183  updates the iterator to the next element.
184 
185  @param tit the iterator
186  @return 1 on success and 0 otherwise
187  */
188  EPUB_EXPORT int epub_tit_next(struct titerator *tit);
189 
190  /**
191  Cleans up after the library. Call this when you are done with the library.
192  */
193  EPUB_EXPORT void epub_cleanup();
194 
195 #ifdef __cplusplus
196 }
197 #endif /* C++ */
198 
199 #endif /* EPUB_H */
EPUB_EXPORT int epub_tit_next(struct titerator *tit)
updates the iterator to the next element.
EPUB_EXPORT int epub_close(struct epub *epub)
This function closes a given epub.
enum eiterator_type type
Definition: epublib.h:229
EPUB_EXPORT int epub_get_ocf_file(struct epub *epub, const char *filename, char **data)
returns the file with the give filename
EPUB_EXPORT void epub_dump(struct epub *epub)
Debugging function dumping various file information.
int opt
Definition: epublib.h:231
EPUB_EXPORT int epub_get_data(struct epub *epub, const char *name, char **data)
returns the file with the give filename.
EPUB_EXPORT char * epub_tit_get_curr_label(struct titerator *tit)
Returns a pointer to the label of the toc iterator&#39;s current entry.
epub_metadata
Metadata types.
Definition: epub_shared.h:17
enum titerator_type type
Definition: epublib.h:243
EPUB_EXPORT char * epub_it_get_curr(struct eiterator *it)
Returns a pointer to the iterator&#39;s data.
EPUB_EXPORT void epub_free_iterator(struct eiterator *it)
Frees the memory held by the given iterator.
EPUB_EXPORT char * epub_it_get_next(struct eiterator *it)
updates the iterator to the next element and returns a pointer to the data.
EPUB_EXPORT void epub_cleanup()
Cleans up after the library.
EPUB_EXPORT char * epub_it_get_curr_url(struct eiterator *it)
Returns a pointer to the url of the iterator&#39;s current data.
EPUB_EXPORT int epub_tit_curr_valid(struct titerator *tit)
Returns 1 if the current entry is valid and 0 otherwise.
EPUB_EXPORT char * epub_tit_get_curr_link(struct titerator *tit)
Returns a pointer to the link of the toc iterator&#39;s current entry.
#define EPUB_EXPORT
Definition: epub_shared.h:11
titerator_type
Ebook Table Of Content Iterator types.
Definition: epub_shared.h:49
EPUB_EXPORT int epub_tit_get_curr_depth(struct titerator *tit)
Returns a pointer to the depth of the toc iterator&#39;s current entry.
private struct containting information about the epub file
Definition: epublib.h:212
EPUB_EXPORT struct eiterator * epub_get_iterator(struct epub *epub, enum eiterator_type type, int opt)
Returns a book iterator of the requested type for the given epub struct.
EPUB_EXPORT void epub_free_titerator(struct titerator *tit)
Frees the memory held by the given iterator.
int opt
Definition: epublib.h:245
EPUB_EXPORT struct epub * epub_open(const char *filename, int debug)
This function accepts an epub filename.
EPUB_EXPORT unsigned char ** epub_get_metadata(struct epub *epub, enum epub_metadata type, int *size)
(Bad xml might cause some of it to be NULL).
private iterator struct
Definition: epublib.h:228
eiterator_type
Ebook Iterator types.
Definition: epub_shared.h:39
int debug
Definition: epublib.h:216
EPUB_EXPORT void epub_set_debug(struct epub *epub, int debug)
This function sets the debug level to the given level.
EPUB_EXPORT struct titerator * epub_get_titerator(struct epub *epub, enum titerator_type type, int opt)
Returns a book toc iterator of the requested type for the given epub struct.