RVNGPropertyListVector.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
2 /* librevenge
3 * Version: MPL 2.0 / LGPLv2.1+
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 * Major Contributor(s):
10 * Copyright (C) 2005 William Lachance (wrlach@gmail.com)
11 * Copyright (C) 2006 Fridrich Strba (fridrich.strba@bluewin.ch)
12 *
13 * For minor contributions see the git repository.
14 *
15 * Alternatively, the contents of this file may be used under the terms
16 * of the GNU Lesser General Public License Version 2.1 or later
17 * (LGPLv2.1+), in which case the provisions of the LGPLv2.1+ are
18 * applicable instead of those above.
19 */
20
21 #ifndef RVNGPROPERTYLISTVECTOR_H
22 #define RVNGPROPERTYLISTVECTOR_H
23
24 #include "librevenge-api.h"
25
26 #include "RVNGPropertyList.h"
27
28 namespace librevenge
29 {
30
31 class RVNGPropertyListVectorImpl;
32 class RVNGPropertyListVectorIterImpl;
33
34 class REVENGE_API RVNGPropertyListVector : public RVNGProperty
35 {
36 public:
37 RVNGPropertyListVector(const RVNGPropertyListVector &);
38 RVNGPropertyListVector();
39 virtual ~RVNGPropertyListVector();
40
41 // RVNGProperty methods
42 int getInt() const;
43 double getDouble() const;
44 RVNGUnit getUnit() const;
45 RVNGString getStr() const;
46 RVNGProperty *clone() const;
47
48 void append(const RVNGPropertyList &elem);
49 void append(const RVNGPropertyListVector &vec);
50 unsigned long count() const;
51 bool empty() const;
52 void clear();
53 const RVNGPropertyList &operator[](unsigned long index) const;
54 RVNGPropertyListVector &operator=(const RVNGPropertyListVector &vect);
55
56 RVNGString getPropString() const;
57
58 class REVENGE_API Iter
59 {
60 public:
61 Iter(const RVNGPropertyListVector &vect);
62 virtual ~Iter();
63 void rewind();
64 bool next();
65 bool last();
66 const RVNGPropertyList &operator()() const;
67
68 private:
69 RVNGPropertyListVectorIterImpl *m_iterImpl;
70 Iter(const Iter &);
71 Iter &operator=(const Iter &);
72 };
73
74 friend class RVNGPropertyListVector::Iter;
75
76 private:
77 RVNGPropertyListVectorImpl *m_impl;
78 };
79
80 }
81
82 #endif /* RVNGPROPERTYLISTVECTOR_H */
83 /* vim:set shiftwidth=4 softtabstop=4 noexpandtab: */
librevenge
Definition: RVNGBinaryData.cpp:38
librevenge::RVNGUnit
RVNGUnit
Definition: RVNGProperty.h:30
librevenge::RVNGPropertyListVector::Iter
Definition: RVNGPropertyListVector.h:58
librevenge::RVNGPropertyListVectorIterImpl
Definition: RVNGPropertyListVector.cpp:56
RVNGPropertyList.h
librevenge::RVNGPropertyListVectorImpl
Definition: RVNGPropertyListVector.cpp:28
librevenge::RVNGPropertyListVector::m_impl
RVNGPropertyListVectorImpl * m_impl
Definition: RVNGPropertyListVector.h:77
librevenge::RVNGProperty
Definition: RVNGProperty.h:32
librevenge::RVNGPropertyListVector
Definition: RVNGPropertyListVector.h:34
REVENGE_API
#define REVENGE_API
Definition: librevenge-api.h:34
librevenge-api.h
librevenge::RVNGPropertyList
Definition: RVNGPropertyList.h:38
librevenge::RVNGString
UTF-8 string.
Definition: RVNGString.h:33
librevenge::RVNGPropertyListVector::Iter::m_iterImpl
RVNGPropertyListVectorIterImpl * m_iterImpl
Definition: RVNGPropertyListVector.h:69