10#ifndef LIBEBOOK_UTILS_H_INCLUDED
11#define LIBEBOOK_UTILS_H_INCLUDED
20#include <boost/cstdint.hpp>
22#include <librevenge-stream/librevenge-stream.h>
23#include <librevenge/librevenge.h>
28#if defined(HAVE_FUNC_ATTRIBUTE_FORMAT)
29#define EBOOK_ATTRIBUTE_PRINTF(fmt, arg) __attribute__((format(printf, fmt, arg)))
31#define EBOOK_ATTRIBUTE_PRINTF(fmt, arg)
36void debugPrint(
const char *format, ...) EBOOK_ATTRIBUTE_PRINTF(1, 2);
39#define EBOOK_DEBUG_MSG(M) libebook::debugPrint M
40#define EBOOK_DEBUG(M) M
44#define EBOOK_DEBUG_MSG(M)
49#define EBOOK_NUM_ELEMENTS(array) sizeof(array)/sizeof(array[0])
61uint8_t
readU8(librevenge::RVNGInputStream *input,
bool =
false);
62uint16_t
readU16(librevenge::RVNGInputStream *input,
bool bigEndian=
false);
63uint32_t
readU32(librevenge::RVNGInputStream *input,
bool bigEndian=
false);
64uint64_t
readU64(librevenge::RVNGInputStream *input,
bool bigEndian=
false);
66const unsigned char *
readNBytes(librevenge::RVNGInputStream *input,
unsigned long numBytes);
68std::string
readCString(librevenge::RVNGInputStream *input);
71void skip(librevenge::RVNGInputStream *input,
unsigned long numBytes);
73void seek(librevenge::RVNGInputStream *input,
unsigned long pos);
74void seekRelative(librevenge::RVNGInputStream *input,
long pos);
78uint8_t
readU8(std::shared_ptr<librevenge::RVNGInputStream> input,
bool =
false);
79uint16_t
readU16(std::shared_ptr<librevenge::RVNGInputStream> input,
bool bigEndian=
false);
80uint32_t
readU32(std::shared_ptr<librevenge::RVNGInputStream> input,
bool bigEndian=
false);
81uint64_t
readU64(std::shared_ptr<librevenge::RVNGInputStream> input,
bool bigEndian=
false);
83const unsigned char *
readNBytes(std::shared_ptr<librevenge::RVNGInputStream> input,
unsigned long numBytes);
85std::string
readCString(std::shared_ptr<librevenge::RVNGInputStream> input);
86std::string
readPascalString(std::shared_ptr<librevenge::RVNGInputStream> input);
88void skip(std::shared_ptr<librevenge::RVNGInputStream> input,
unsigned long numBytes);
90void seek(std::shared_ptr<librevenge::RVNGInputStream> input,
unsigned long pos);
91void seekRelative(std::shared_ptr<librevenge::RVNGInputStream> input,
long pos);
Definition: libebook_utils.h:100
EndOfStreamException()
Definition: libebook_utils.cpp:275
Definition: libebook_utils.h:112
Definition: libebook_utils.h:106
Definition: libebook_utils.h:116
Definition: libebook_utils.h:120
Definition: libebook_utils.h:124
Definition: libebook_utils.h:128
Definition: BBeBCollector.cpp:19
string readCString(librevenge::RVNGInputStream *input)
Definition: libebook_utils.cpp:118
bool findSubStreamByExt(const RVNGInputStreamPtr_t &input, const std::string &ext, unsigned &id)
Definition: libebook_utils.cpp:245
librevenge::RVNGPropertyList getDefaultPageSpanPropList()
Definition: libebook_utils.cpp:265
uint8_t readU8(librevenge::RVNGInputStream *input, bool)
Definition: libebook_utils.cpp:45
void seek(librevenge::RVNGInputStream *const input, const unsigned long pos)
Definition: libebook_utils.cpp:152
unsigned long getRemainingLength(librevenge::RVNGInputStream *const input)
Definition: libebook_utils.cpp:170
void skip(librevenge::RVNGInputStream *input, unsigned long numBytes)
Definition: libebook_utils.cpp:145
std::shared_ptr< librevenge::RVNGInputStream > RVNGInputStreamPtr_t
Definition: libebook_utils.h:54
string readPascalString(librevenge::RVNGInputStream *input)
Definition: libebook_utils.cpp:133
uint64_t readU64(librevenge::RVNGInputStream *input, bool bigEndian)
Definition: libebook_utils.cpp:89
uint16_t readU16(librevenge::RVNGInputStream *input, bool bigEndian)
Definition: libebook_utils.cpp:57
const unsigned char * readNBytes(librevenge::RVNGInputStream *const input, const unsigned long numBytes)
Definition: libebook_utils.cpp:105
uint32_t readU32(librevenge::RVNGInputStream *input, bool bigEndian)
Definition: libebook_utils.cpp:73
void seekRelative(librevenge::RVNGInputStream *const input, const long pos)
Definition: libebook_utils.cpp:161
Definition: libebook_utils.h:57
void operator()(void *)
Definition: libebook_utils.h:58