Improvements to the DatabasePager and PagedLOD class adding support for

deleting expuired children in the database thread.
This commit is contained in:
Robert Osfield
2003-07-09 14:55:39 +00:00
parent dcbaf59753
commit 5aa47a77c2
9 changed files with 140 additions and 50 deletions

View File

@@ -31,7 +31,7 @@ Group::Group()
Group::Group(const Group& group,const CopyOp& copyop):
Node(group,copyop)
{
for(ChildList::const_iterator itr=group._children.begin();
for(NodeList::const_iterator itr=group._children.begin();
itr!=group._children.end();
++itr)
{
@@ -43,7 +43,7 @@ Group::Group(const Group& group,const CopyOp& copyop):
Group::~Group()
{
// remove reference to this from children's parent lists.
for(ChildList::iterator itr=_children.begin();
for(NodeList::iterator itr=_children.begin();
itr!=_children.end();
++itr)
{
@@ -55,7 +55,7 @@ Group::~Group()
void Group::traverse(NodeVisitor& nv)
{
for(ChildList::iterator itr=_children.begin();
for(NodeList::iterator itr=_children.begin();
itr!=_children.end();
++itr)
{
@@ -298,7 +298,7 @@ bool Group::computeBound() const
BoundingBox bb;
bb.init();
ChildList::const_iterator itr;
NodeList::const_iterator itr;
for(itr=_children.begin();
itr!=_children.end();
++itr)

View File

@@ -129,7 +129,7 @@ void PagedLOD::setTimeStamp(unsigned int childNo, double timeStamp)
_timeStampList[childNo] = timeStamp;
}
void PagedLOD::removeExpiredChildren(double expiryTime)
void PagedLOD::removeExpiredChildren(double expiryTime,NodeList& removedChildren)
{
for(unsigned int i=_children.size();i>0;)
{
@@ -137,6 +137,7 @@ void PagedLOD::removeExpiredChildren(double expiryTime)
if (!_fileNameList[i].empty() && _timeStampList[i]<expiryTime)
{
//std::cout<<"Removing child "<<_children[i].get()<<std::endl;
removedChildren.push_back(_children[i]);
Group::removeChild(_children[i].get());
}
}