Kaydet (Commit) 811d6ff5 authored tarafından Kohei Yoshida's avatar Kohei Yoshida

Apply pimpl to SvKeyValueIterator, to hide ptr_vector from the header.

Change-Id: I16c25d28066fbc8d6357bf89b047763b67bc85bb
üst 96811dbd
...@@ -25,8 +25,7 @@ ...@@ -25,8 +25,7 @@
#include <tools/ref.hxx> #include <tools/ref.hxx>
#include <rtl/textenc.h> #include <rtl/textenc.h>
#include <rtl/ustring.hxx> #include <rtl/ustring.hxx>
#include <boost/ptr_container/ptr_vector.hpp> #include <boost/noncopyable.hpp>
#include <boost/utility.hpp>
#include <vector> #include <vector>
struct SvParser_Impl; struct SvParser_Impl;
...@@ -248,21 +247,17 @@ public: ...@@ -248,21 +247,17 @@ public:
* *
*======================================================================*/ *======================================================================*/
typedef boost::ptr_vector<SvKeyValue> SvKeyValueList_Impl;
class SVT_DLLPUBLIC SvKeyValueIterator : public SvRefBase, class SVT_DLLPUBLIC SvKeyValueIterator : public SvRefBase,
private boost::noncopyable private boost::noncopyable
{ {
/** Representation. struct Impl;
*/ Impl* mpImpl;
SvKeyValueList_Impl* m_pList;
sal_uInt16 m_nPos;
public: public:
/** Construction/Destruction. /** Construction/Destruction.
*/ */
SvKeyValueIterator (void); SvKeyValueIterator();
virtual ~SvKeyValueIterator (void); virtual ~SvKeyValueIterator();
/** Operation. /** Operation.
*/ */
......
...@@ -17,13 +17,15 @@ ...@@ -17,13 +17,15 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 . * the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/ */
#include <stdio.h>
#include <svtools/svparser.hxx> #include <svtools/svparser.hxx>
#include <tools/stream.hxx> #include <tools/stream.hxx>
#include <tools/debug.hxx> #include <tools/debug.hxx>
#include <rtl/textcvt.h> #include <rtl/textcvt.h>
#include <rtl/tencinfo.h> #include <rtl/tencinfo.h>
#include <stdio.h>
#include <boost/ptr_container/ptr_vector.hpp>
// structure to store the actuel data // structure to store the actuel data
struct SvParser_Impl struct SvParser_Impl
{ {
...@@ -649,40 +651,34 @@ IMPL_STATIC_LINK( SvParser, NewDataRead, void*, EMPTYARG ) ...@@ -649,40 +651,34 @@ IMPL_STATIC_LINK( SvParser, NewDataRead, void*, EMPTYARG )
* *
*======================================================================*/ *======================================================================*/
/* typedef boost::ptr_vector<SvKeyValue> SvKeyValueList_Impl;
* SvKeyValueIterator.
*/ struct SvKeyValueIterator::Impl
SvKeyValueIterator::SvKeyValueIterator (void)
: m_pList (new SvKeyValueList_Impl),
m_nPos (0)
{ {
} SvKeyValueList_Impl maList;
sal_uInt16 mnPos;
/* Impl() : mnPos(0) {}
* ~SvKeyValueIterator. };
*/
SvKeyValueIterator::~SvKeyValueIterator (void) SvKeyValueIterator::SvKeyValueIterator() : mpImpl(new Impl) {}
SvKeyValueIterator::~SvKeyValueIterator()
{ {
delete m_pList; delete mpImpl;
} }
/*
* GetFirst.
*/
bool SvKeyValueIterator::GetFirst (SvKeyValue &rKeyVal) bool SvKeyValueIterator::GetFirst (SvKeyValue &rKeyVal)
{ {
m_nPos = m_pList->size(); mpImpl->mnPos = mpImpl->maList.size();
return GetNext (rKeyVal); return GetNext (rKeyVal);
} }
/*
* GetNext.
*/
bool SvKeyValueIterator::GetNext (SvKeyValue &rKeyVal) bool SvKeyValueIterator::GetNext (SvKeyValue &rKeyVal)
{ {
if (m_nPos > 0) if (mpImpl->mnPos > 0)
{ {
rKeyVal = (*m_pList)[--m_nPos]; rKeyVal = mpImpl->maList[--mpImpl->mnPos];
return true; return true;
} }
else else
...@@ -692,12 +688,9 @@ bool SvKeyValueIterator::GetNext (SvKeyValue &rKeyVal) ...@@ -692,12 +688,9 @@ bool SvKeyValueIterator::GetNext (SvKeyValue &rKeyVal)
} }
} }
/*
* Append.
*/
void SvKeyValueIterator::Append (const SvKeyValue &rKeyVal) void SvKeyValueIterator::Append (const SvKeyValue &rKeyVal)
{ {
m_pList->push_back(new SvKeyValue(rKeyVal)); mpImpl->maList.push_back(new SvKeyValue(rKeyVal));
} }
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment