EPUBImageManager.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /*
3  * This file is part of the libepubgen project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  */
9 
10 #ifndef INCLUDED_EPUBIMAGEMANAGER_H
11 #define INCLUDED_EPUBIMAGEMANAGER_H
12 
13 #include <unordered_map>
14 
15 #include <librevenge/librevenge.h>
16 
17 #include "EPUBCounter.h"
18 #include "EPUBPath.h"
19 
20 namespace libepubgen
21 {
22 
23 class EPUBManifest;
24 class EPUBPackage;
25 
27 {
28  // disable copying
31 
32  struct BinaryDataHash // : public std::unary_function<librevenge::RVNGBinaryData, std::size_t>
33  {
34  std::size_t operator()(const librevenge::RVNGBinaryData &data) const;
35  };
36 
37  struct BinaryDataEqual // : public std::binary_function<librevenge::RVNGBinaryData, librevenge::RVNGBinaryData, bool>
38  {
39  bool operator()(const librevenge::RVNGBinaryData &left, const librevenge::RVNGBinaryData &right) const;
40  };
41 
42  typedef std::unordered_map<librevenge::RVNGBinaryData, EPUBPath, BinaryDataHash, BinaryDataEqual> MapType_t;
43 
44 public:
45  explicit EPUBImageManager(EPUBManifest &manifest);
46 
47  const EPUBPath &insert(const librevenge::RVNGBinaryData &data, const librevenge::RVNGString &mimetype);
48 
49  void writeTo(EPUBPackage &package);
50 
51 private:
53  MapType_t m_map;
55 };
56 
57 }
58 
59 #endif // INCLUDED_EPUBIMAGEMANAGER
60 
61 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
MapType_t m_map
Definition: EPUBImageManager.h:53
Definition: EPUBBinarySink.cpp:12
std::unordered_map< librevenge::RVNGBinaryData, EPUBPath, BinaryDataHash, BinaryDataEqual > MapType_t
Definition: EPUBImageManager.h:42
void writeTo(EPUBPackage &package)
Definition: EPUBImageManager.cpp:98
Definition: EPUBImageManager.h:37
Definition: EPUBManifest.h:23
std::size_t operator()(const librevenge::RVNGBinaryData &data) const
Definition: EPUBImageManager.cpp:46
EPUBImageManager(const EPUBImageManager &)
Representation of a path in the package.
Definition: EPUBPath.h:21
EPUBManifest & m_manifest
Definition: EPUBImageManager.h:52
const EPUBPath & insert(const librevenge::RVNGBinaryData &data, const librevenge::RVNGString &mimetype)
Definition: EPUBImageManager.cpp:74
EPUBCounter m_number
Definition: EPUBImageManager.h:54
Definition: EPUBCounter.h:16
EPUBImageManager & operator=(const EPUBImageManager &)
Definition: EPUBImageManager.h:32
Definition: EPUBImageManager.h:26

Generated for libepubgen by doxygen 1.8.11