EPUBPath.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_EPUBPATH_H
11#define INCLUDED_EPUBPATH_H
12
13#include <string>
14#include <vector>
15
16namespace libepubgen
17{
18
22{
23 friend bool operator==(const EPUBPath &left, const EPUBPath &right);
24
25public:
27 {
28 friend class EPUBPath;
29
30 public:
31 const std::string str() const;
32
33 private:
34 explicit Relative(const std::vector<std::string> &components);
35
36 private:
37 std::vector<std::string> m_components;
38 };
39
40 explicit EPUBPath(const std::string &path);
41
42 void swap(EPUBPath &other);
43
44 void append(const EPUBPath &subpath);
45 void appendComponent(const std::string &pathComponent);
46
47 const std::string str() const;
48
49 const Relative relativeTo(const EPUBPath &base) const;
50
51 void appendTitle(const std::string &title);
52 std::string getTitle() const;
53
55 void addChapter(const std::string &chapter);
56 const std::vector<std::string> &getChapters() const;
57private:
58 std::vector<std::string> m_components;
59 std::string m_title;
60 std::vector<std::string> m_chapters;
61};
62
63bool operator==(const EPUBPath &left, const EPUBPath &right);
64bool operator!=(const EPUBPath &left, const EPUBPath &right);
65
66const EPUBPath operator/(const EPUBPath &base, const EPUBPath &subpath);
67const EPUBPath operator/(const EPUBPath &base, const std::string &pathComponent);
68
69void swap(EPUBPath &left, EPUBPath &right);
70
71}
72
73#endif // INCLUDED_EPUBPATH
74
75/* vim:set shiftwidth=2 softtabstop=2 expandtab: */
Definition EPUBPath.h:27
std::vector< std::string > m_components
Definition EPUBPath.h:37
Relative(const std::vector< std::string > &components)
Definition EPUBPath.cpp:50
friend class EPUBPath
Definition EPUBPath.h:28
const std::string str() const
Definition EPUBPath.cpp:45
Representation of a path in the package.
Definition EPUBPath.h:22
void append(const EPUBPath &subpath)
Definition EPUBPath.cpp:72
std::vector< std::string > m_chapters
Definition EPUBPath.h:60
const std::string str() const
Definition EPUBPath.cpp:87
EPUBPath(const std::string &path)
Definition EPUBPath.cpp:55
void swap(EPUBPath &other)
Definition EPUBPath.cpp:67
friend bool operator==(const EPUBPath &left, const EPUBPath &right)
Definition EPUBPath.cpp:136
void appendComponent(const std::string &pathComponent)
Definition EPUBPath.cpp:77
std::string m_title
Definition EPUBPath.h:59
void addChapter(const std::string &chapter)
Adds chapter name (fixed layout).
Definition EPUBPath.cpp:121
const std::vector< std::string > & getChapters() const
Definition EPUBPath.cpp:126
std::vector< std::string > m_components
Definition EPUBPath.h:58
const Relative relativeTo(const EPUBPath &base) const
Definition EPUBPath.cpp:92
void appendTitle(const std::string &title)
Definition EPUBPath.cpp:116
std::string getTitle() const
Definition EPUBPath.cpp:131
Definition EPUBBinaryContent.cpp:15
bool operator!=(const EPUBPath &left, const EPUBPath &right)
Definition EPUBPath.cpp:141
void swap(EPUBPath &left, EPUBPath &right)
Definition EPUBPath.cpp:160
bool operator==(const EPUBPath &left, const EPUBPath &right)
Definition EPUBPath.cpp:136
const EPUBPath operator/(const EPUBPath &base, const EPUBPath &subpath)
Definition EPUBPath.cpp:146

Generated for libepubgen by doxygen 1.14.0