本文整理汇总了C++中Child::getPrevParentTableListChild方法的典型用法代码示例。如果您正苦于以下问题:C++ Child::getPrevParentTableListChild方法的具体用法?C++ Child::getPrevParentTableListChild怎么用?C++ Child::getPrevParentTableListChild使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Child
的用法示例。
在下文中一共展示了Child::getPrevParentTableListChild方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getChildHash
Bool testhash::Parent::removeChild(const Child & child) const {
if(!child.isExists() || child.getParent() != *this )
return false;
StdUInt hash_value = getChildHash(child.getParentKey());
Child next = child.getNextParentTableListChild();
Child prev = child.getPrevParentTableListChild();
if (prev.isValid()) //! Previous exists
{
if (getChildHash(prev.getParentKey()) != hash_value) //! Previous has different hash
{
if (next.isValid()) //! And next exists
{
if (getChildHash(next.getParentKey()) != hash_value) //! But next has different hash
setiChildTable(hash_value, Child());
else //! Next has the same hash
setiChildTable(hash_value, next);
}
else //! Next is absent
{
setiChildTable(hash_value, Child());
setChildTableMax(getChildHash(prev.getParentKey()));
}
}
}
else //! Previous absent
{
if (next.isValid()) //! Next exists
{
if (getChildHash(next.getParentKey()) != hash_value) //! Next has different hash
{
setiChildTable(hash_value, Child());
setChildTableMin(getChildHash(next.getParentKey()));
}
else //! Next has the same hash
setiChildTable(hash_value, next);
}
else //! Next is absent
{
setiChildTable(hash_value, Child());
setChildTableMax(0);
setChildTableMin(0);
}
}
removeTableListChild(child);
child.setParent(Parent());
child.removeParentHandler();
setNumChilds(getNumChilds() - 1);
return true;
}
示例2: setFirstTableListChild
Bool testhash::Parent::insertBeforeTableListChild(const Child & child, const Child & next) const {
if(!child.isExists() || !next.isExists())
return false;
Child prev = next.getPrevParentTableListChild();
next.setPrevParentTableListChild(child);
child.setNextParentTableListChild(next);
child.setPrevParentTableListChild(prev);
if(prev.isValid())
prev.setNextParentTableListChild(child);
else
setFirstTableListChild(child);
setNumTableListChilds(getNumTableListChilds() + 1);
child.setupTableListParentHandler();
return true;
}
示例3: getLastTableListChild
testhash::Child testhash::Parent::popBackTableListChild() const {
Child result = getLastTableListChild();
if(result.isValid())
{
result.removeTableListParentHandler();
Child prev = result.getPrevParentTableListChild();
result.setPrevParentTableListChild(Child());
result.setNextParentTableListChild(Child());
setLastTableListChild(prev);
if(!prev.isValid())
setFirstTableListChild(Child());
else
prev.setNextParentTableListChild(Child());
setNumTableListChilds(getNumTableListChilds() - 1);
}
return result;
}
示例4: if
Bool testhash::Parent::removeTableListChild(const Child & child) const {
if( !child.isExists())
return false;
child.removeTableListParentHandler();
Child next = child.getNextParentTableListChild(), prev = child.getPrevParentTableListChild();
if(next.isValid())
next.setPrevParentTableListChild(prev);
else if (getLastTableListChild() == child)
setLastTableListChild(prev);
else
return false;
if(prev.isValid())
prev.setNextParentTableListChild(next);
else if (getFirstTableListChild() == child)
setFirstTableListChild(next);
else
return false;
child.setNextParentTableListChild(Child());
child.setPrevParentTableListChild(Child());
setNumTableListChilds(getNumTableListChilds() - 1);
return true;
}