Changeset 11285 for OpenSceneGraph/trunk/include/osgDB/DatabasePager
- Timestamp:
- 03/24/10 15:27:00 (3 years ago)
- Files:
-
- 1 modified
-
OpenSceneGraph/trunk/include/osgDB/DatabasePager (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
OpenSceneGraph/trunk/include/osgDB/DatabasePager
r11143 r11285 405 405 bool isRequestCurrent (int frameNumber) const 406 406 { 407 return frameNumber - _frameNumberLastRequest <= 1;407 return _valid && (frameNumber - _frameNumberLastRequest <= 1); 408 408 } 409 409 }; … … 412 412 { 413 413 public: 414 typedef std::vector< osg::ref_ptr<DatabaseRequest> > RequestList; 415 416 void sort(); 417 418 RequestList _requestList; 419 OpenThreads::Mutex _requestMutex; 414 415 RequestQueue(DatabasePager* pager); 416 417 void add(DatabaseRequest* databaseRequest); 418 419 void takeFirst(osg::ref_ptr<DatabaseRequest>& databaseRequest); 420 421 /// prune all the old requests and then return true if requestList left empty 422 bool pruneOldRequestsAndCheckIfEmpty(); 423 424 virtual void updateBlock() {} 425 426 void clear(); 427 428 typedef std::list< osg::ref_ptr<DatabaseRequest> > RequestList; 429 430 DatabasePager* _pager; 431 RequestList _requestList; 432 OpenThreads::Mutex _requestMutex; 433 int _frameNumberLastPruned; 420 434 421 435 protected: … … 435 449 void release() { _block->release(); } 436 450 437 void updateBlock() 438 { 439 _block->set((!_requestList.empty() || !_childrenToDeleteList.empty()) && 440 !_pager->_databasePagerThreadPaused); 441 } 442 443 void clear(); 444 445 void add(DatabaseRequest* databaseRequest); 446 447 void takeFirst(osg::ref_ptr<DatabaseRequest>& databaseRequest); 451 virtual void updateBlock(); 452 448 453 449 454 osg::ref_ptr<osg::RefBlock> _block; 450 455 451 DatabasePager* _pager;452 456 std::string _name; 453 int _frameNumberLastPruned;454 457 455 458 OpenThreads::Mutex _childrenToDeleteListMutex;
