Kaydet (Commit) cb11bca5 authored tarafından Bjoern Michaelsen's avatar Bjoern Michaelsen

add unique() function

Change-Id: I9866a2725bc74e3afd90eb5c32587beb7f4f6e2a
üst bf449c26
......@@ -85,6 +85,9 @@ namespace sw
/** @return the previous item in the ring container */
const_value_type* GetPrevInRing() const
{ return pPrev; }
/** @return true if and only if this item is alone in its ring */
bool unique() const
{ return algo::unique(static_cast< const_value_type* >(this)); }
private:
/** internal implementation class -- not for external use */
......
......@@ -1282,6 +1282,8 @@ namespace
{ return GetNextInRing(); }
TestRing* GetPrev()
{ return GetPrevInRing(); }
bool lonely() const
{ return unique(); }
#if 0
void debug()
{
......@@ -1301,11 +1303,17 @@ void SwDocTest::testIntrusiveRing()
vRings.push_back(&aRing4);
vRings.push_back(&aRing5);
CPPUNIT_ASSERT_EQUAL(aRing1.GetRingContainer().size(), static_cast<size_t>(1));
CPPUNIT_ASSERT(aRing1.lonely());
CPPUNIT_ASSERT(aRing2.lonely());
CPPUNIT_ASSERT(aRing3.lonely());
aRing2.MoveTo(&aRing1);
aRing3.MoveTo(&aRing1);
CPPUNIT_ASSERT_EQUAL(aRing1.GetRingContainer().size(), static_cast<size_t>(3));
CPPUNIT_ASSERT_EQUAL(aRing2.GetRingContainer().size(), static_cast<size_t>(3));
CPPUNIT_ASSERT_EQUAL(aRing3.GetRingContainer().size(), static_cast<size_t>(3));
CPPUNIT_ASSERT(!aRing1.lonely());
CPPUNIT_ASSERT(!aRing2.lonely());
CPPUNIT_ASSERT(!aRing3.lonely());
aRing5.MoveTo(&aRing4);
CPPUNIT_ASSERT_EQUAL(aRing4.GetRingContainer().size(), static_cast<size_t>(2));
aRing4.GetRingContainer().merge(aRing1.GetRingContainer());
......
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