#include <OSGFieldContainerPtrImpl.h>
Inheritance diagram for osg::FieldContainerPtrBase:

Public Types | |
| typedef UInt8 *FieldContainerPtrBase::* | unspecified_bool_type |
Public Member Functions | |
Constructors | |
| * | FieldContainerPtrBase (void) |
| FieldContainerPtrBase (const NullFieldContainerPtr &) | |
| FieldContainerPtrBase (const FieldContainerPtrBase &source) | |
Destructor | |
| * | ~FieldContainerPtrBase (void) |
Parent Field Pos | |
| *void | setParentFieldPos (UInt16 uiParentEPos) |
| UInt16 | getParentFieldPos (void) const |
Get Container Information | |
| *Int32 | getRefCount (void) const |
| UInt32 | getFieldContainerId (void) const |
| UInt16 | getContainerSize (void) const |
Get Container C++ Pointer | |
| *FieldContainer * | getBaseCPtr (void) const |
| FieldContainer * | getAspectCPtr (UInt32 uiAspectId) const |
Assignment | |
| *void | operator= (const NullFieldContainerPtr &) |
| void | operator= (const FieldContainerPtrBase &source) |
Comparison | |
| *bool | operator< (const NullFieldContainerPtr &) const |
| bool | operator== (const NullFieldContainerPtr &other) const |
| bool | operator!= (const NullFieldContainerPtr &other) const |
| bool | operator< (const FieldContainerPtrBase &) const |
| bool | operator== (const FieldContainerPtrBase &other) const |
| bool | operator!= (const FieldContainerPtrBase &other) const |
| bool | operator! (void) const |
| operator unspecified_bool_type () const | |
Dump | |
| *void | dump (UInt32 uiIndent=0, const BitVector bvFlags=0) const |
Static Public Attributes | |
| static const UInt16 | InvalidParentEPos = 0xFFFF |
Protected Member Functions | |
Constructors | |
| * | FieldContainerPtrBase (const FieldContainer &source) |
| FieldContainerPtrBase (const FieldContainer *source) | |
| FieldContainerPtrBase (const FieldContainer *source, const UInt16 uiSize, const UInt16 uiParentEPos) | |
Sync | |
| *void | executeSync (UInt32 uiFromAspect, UInt32 uiToAspect, BitVector whichField) |
Get Memory Locations | |
| *Int32 * | getRefCountP (void) |
| Int32 * | getRefCountP (void) const |
| UInt32 * | getIdP (void) |
| UInt32 * | getIdP (void) const |
| UInt8 * | getFirstElemP (void) |
| UInt8 * | getFirstElemP (void) const |
| UInt8 * | getElemP (UInt32 uiElemNum) |
| UInt8 * | getElemP (UInt32 uiElemNum) const |
Get Memory Offsets | |
| *Int32 | getRefCountOff (void) const |
| Int32 | getIdOff (void) const |
| Int32 | getFirstElemOff (void) const |
| Int32 | getElemOff (UInt32 uiElemNum) const |
Reference Counting | |
| *void | addRef (void) const |
| void | subRef (void) const |
| void | deleteContainers (void) const |
Helper | |
| *void | setNull (void) |
Static Protected Member Functions | |
Intialization / Termination | |
| *static bool | initialize (void) |
| static bool | terminate (void) |
Protected Attributes | |
Member | |
| *UInt16 | _containerSize |
| UInt16 | _uiParentEPos |
| UInt8 * | _storeP |
Static Private Attributes | |
| static LockPool * | _pRefCountLock = NULL |
Friends | |
| class | FieldContainer |
| class | FieldContainerFactory |
| class | ChangeList |
| void | addRefCP (const FieldContainerPtrBase &objectP) |
| void | subRefCP (const FieldContainerPtrBase &objectP) |
| void | setRefdCP (FieldContainerPtrBase &objectP, const FieldContainerPtrBase &newObjectP) |
| void | clearRefCP (FieldContainerPtrBase &objectP) |
Definition at line 92 of file OSGFieldContainerPtrImpl.h.
|
|
Definition at line 99 of file OSGFieldContainerPtrImpl.h. |
|
|
Definition at line 145 of file OSGFieldContainerPtrImpl.inl. References getFirstElemP(). 00145 : 00146 _containerSize(0 ), 00147 _uiParentEPos(InvalidParentEPos), 00148 _storeP (NULL ) 00149 { 00150 #ifdef OSG_DEBUG_FCPTR 00151 _typedStoreP = reinterpret_cast<FieldContainer *>(getFirstElemP()); 00152 #endif 00153 }
|
|
|
Definition at line 156 of file OSGFieldContainerPtrImpl.inl. References getFirstElemP(). 00157 : 00158 00159 _containerSize(0 ), 00160 _uiParentEPos (InvalidParentEPos), 00161 _storeP (NULL ) 00162 { 00163 #ifdef OSG_DEBUG_FCPTR 00164 _typedStoreP = reinterpret_cast<FieldContainer *>(getFirstElemP()); 00165 #endif 00166 }
|
|
|
Definition at line 169 of file OSGFieldContainerPtrImpl.inl. References getFirstElemP(). 00170 : 00171 00172 _containerSize(source._containerSize), 00173 _uiParentEPos (source._uiParentEPos ), 00174 _storeP (source._storeP ) 00175 { 00176 #ifdef OSG_DEBUG_FCPTR 00177 _typedStoreP = reinterpret_cast<FieldContainer *>(getFirstElemP()); 00178 #endif 00179 }
|
|
|
Definition at line 185 of file OSGFieldContainerPtrImpl.inl. References _containerSize, _storeP, and _uiParentEPos. 00186 { 00187 #ifdef OSG_DEBUG 00188 _storeP = NULL; 00189 _containerSize = 65535; 00190 _uiParentEPos = 65535; 00191 #ifdef OSG_DEBUG_FCPTR 00192 _typedStoreP = NULL; 00193 #endif 00194 #endif 00195 }
|
|
|
Definition at line 371 of file OSGFieldContainerPtrImpl.inl. References _containerSize, _storeP, _uiParentEPos, osg::PThreadBase::getAspect(), osg::FieldContainer::getContainerSize(), getElemOff(), getFirstElemP(), and InvalidParentEPos. 00372 { 00373 _containerSize = source.getContainerSize(); 00374 _uiParentEPos = InvalidParentEPos; 00375 _storeP = (UInt8 *) (const_cast<FieldContainer *>(&source)); 00376 #if !defined(OSG_DEBUG_NO_FCPTR_ARITHM) 00377 _storeP -= getElemOff(Thread::getAspect()); 00378 #endif 00379 00380 #ifdef OSG_DEBUG_FCPTR 00381 _typedStoreP = reinterpret_cast<FieldContainer *>(getFirstElemP()); 00382 #endif 00383 }
|
|
|
Definition at line 386 of file OSGFieldContainerPtrImpl.inl. References _containerSize, _storeP, _uiParentEPos, osg::PThreadBase::getAspect(), osg::FieldContainer::getContainerSize(), getElemOff(), getFirstElemP(), and InvalidParentEPos. 00387 { 00388 _uiParentEPos = InvalidParentEPos; 00389 00390 if(source != NULL) 00391 { 00392 _containerSize = source->getContainerSize(); 00393 _storeP = (UInt8 *) (const_cast<FieldContainer *>(source)); 00394 #if !defined(OSG_DEBUG_NO_FCPTR_ARITHM) 00395 _storeP -= getElemOff(Thread::getAspect()); 00396 #endif 00397 } 00398 else 00399 { 00400 _containerSize = 0; 00401 _storeP = NULL; 00402 } 00403 00404 #ifdef OSG_DEBUG_FCPTR 00405 _typedStoreP = reinterpret_cast<FieldContainer *>(getFirstElemP()); 00406 #endif 00407 }
|
|
||||||||||||||||
|
Definition at line 339 of file OSGFieldContainerPtrImpl.inl. References _containerSize, _storeP, _uiParentEPos, osg::PThreadBase::getAspect(), getElemOff(), and getFirstElemP(). 00342 { 00343 _uiParentEPos = uiParentEPos; 00344 _containerSize = uiSize; 00345 00346 if(source != NULL) 00347 { 00348 _storeP = (UInt8 *) (const_cast<FieldContainer *>(source)); 00349 #if !defined(OSG_DEBUG_NO_FCPTR_ARITHM) 00350 _storeP -= getElemOff(Thread::getAspect()); 00351 #endif 00352 } 00353 else 00354 { 00355 _storeP = NULL; 00356 } 00357 00358 #ifdef OSG_DEBUG_FCPTR 00359 _typedStoreP = reinterpret_cast<FieldContainer *>(getFirstElemP()); 00360 #endif 00361 }
|
|
|
|
Definition at line 207 of file OSGFieldContainerPtrImpl.inl. References _uiParentEPos. 00208 { 00209 return _uiParentEPos; 00210 }
|
|
|
Definition at line 216 of file OSGFieldContainerPtrImpl.inl. References _storeP, and getRefCountP(). 00217 { 00218 if(_storeP == NULL) 00219 return 0; 00220 00221 return (*getRefCountP()); 00222 }
|
|
|
|
Definition at line 231 of file OSGFieldContainerPtrImpl.inl. References _containerSize. Referenced by osg::FieldContainerPtr::beginEdit(), and executeSync(). 00232 { 00233 return _containerSize; 00234 }
|
|
|
Definition at line 237 of file OSGFieldContainerPtrImpl.inl. References getFirstElemP(). Referenced by osg::FieldTraitsRecurseMapper< FieldContainerPtr, false >::putToString(). 00238 { 00239 return reinterpret_cast<FieldContainer *>(getFirstElemP()); 00240 }
|
|
|
Definition at line 243 of file OSGFieldContainerPtrImpl.inl. References getElemP(). Referenced by osg::QFCItem::expand(), osg::QFieldViewBase::getFieldPtr(), osg::QFieldEditorBase::getFieldPtr(), osg::getParentsField(), and osg::QFCItem::setup(). 00244 { 00245 return reinterpret_cast<FieldContainer *>(getElemP(uiAspectId)); 00246 }
|
|
|
Reimplemented in osg::AttachmentContainerPtr, osg::AttachmentPtr, osg::CNodePtr, osg::FieldContainerPtr, osg::ConstFieldContainerPtr, osg::NodePtr, and osg::FCPtr< MaterialDrawablePtr, Geometry >. Definition at line 251 of file OSGFieldContainerPtrImpl.inl. References _containerSize, _storeP, _uiParentEPos, and InvalidParentEPos. 00252 { 00253 _containerSize = 0; 00254 _uiParentEPos = InvalidParentEPos; 00255 _storeP = NULL; 00256 00257 #ifdef OSG_DEBUG_FCPTR 00258 _typedStoreP = NULL; 00259 #endif 00260 }
|
|
|
Definition at line 263 of file OSGFieldContainerPtrImpl.inl. References _containerSize, _storeP, _uiParentEPos, and getFirstElemP(). 00264 { 00265 if (this == &source) 00266 return; 00267 00268 _containerSize = source._containerSize; 00269 _uiParentEPos = source._uiParentEPos; 00270 _storeP = source._storeP; 00271 00272 #ifdef OSG_DEBUG_FCPTR 00273 _typedStoreP = reinterpret_cast<FieldContainer *>(getFirstElemP()); 00274 #endif 00275 }
|
|
|
Definition at line 281 of file OSGFieldContainerPtrImpl.inl.
|
|
|
Definition at line 288 of file OSGFieldContainerPtrImpl.inl. References _storeP. 00290 { 00291 return _storeP == NULL; 00292 }
|
|
|
Definition at line 295 of file OSGFieldContainerPtrImpl.inl. References _storeP. 00297 { 00298 return _storeP != NULL; 00299 }
|
|
|
Definition at line 303 of file OSGFieldContainerPtrImpl.inl. References _storeP. 00305 { 00306 return _storeP < other._storeP; 00307 }
|
|
|
Definition at line 310 of file OSGFieldContainerPtrImpl.inl. References _storeP. 00312 { 00313 return _storeP == other._storeP; 00314 }
|
|
|
Definition at line 317 of file OSGFieldContainerPtrImpl.inl.
|
|
|
Definition at line 324 of file OSGFieldContainerPtrImpl.inl. References _storeP. 00325 { 00326 return _storeP == NULL; 00327 }
|
|
|
Definition at line 330 of file OSGFieldContainerPtrImpl.inl. References _storeP. 00331 { 00332 return !*this ? 0 : &FieldContainerPtrBase::_storeP; 00333 }
|
|
||||||||||||
|
Definition at line 82 of file OSGFieldContainerPtr.cpp. References _storeP, getFirstElemP(), getIdP(), getRefCountP(), osg::indentLog(), PLOG, and osg::FCDumpFlags::RefCount. Referenced by osg::DVRVolumeTexture::changed(), osg::createComposedImage(), osg::SimpleMaterial::dump(), osg::Geometry::dump(), osg::DVRVolume::dump(), and osg::DVRLookupTable::dump(). 00084 { 00085 if(this != NULL && _storeP != NULL) 00086 { 00087 indentLog(uiIndent, PLOG); 00088 PLOG << "FCPtr Dump :" << std::endl; 00089 00090 uiIndent += 4; 00091 00092 indentLog(uiIndent, PLOG); 00093 PLOG << "Id : " << std::dec << (*(getIdP())) << std::endl; 00094 00095 indentLog(uiIndent, PLOG); 00096 PLOG << "Storage : " 00097 << std::hex << (UInt32 *)getFirstElemP() 00098 << std::endl; 00099 00100 if(bvFlags & FCDumpFlags::RefCount) 00101 { 00102 indentLog(uiIndent, PLOG); 00103 PLOG << "RefCount : " << *(getRefCountP()) << std::endl; 00104 } 00105 00106 // dumpContent(); 00107 } 00108 else 00109 { 00110 PLOG << "FCPtr Dump : (NULL)" << std::endl; 00111 } 00112 }
|
|
|
Definition at line 117 of file OSGFieldContainerPtr.cpp. References _pRefCountLock, osg::addRefP(), osg::ThreadManager::getLockPool(), SINFO, and osg::ThreadManager::the(). Referenced by osg::DVRVolume::draw(), osg::FieldContainerFactory::FieldContainerFactory(), and osg::DVRVolume::initializeClipObjects(). 00118 { 00119 bool returnValue = false; 00120 ThreadManager *pManager = ThreadManager::the(); 00121 00122 SINFO << "OSGFieldContainerPtrBase init" << std::endl; 00123 00124 if(pManager != NULL) 00125 { 00126 _pRefCountLock = pManager->getLockPool("DSPTRRefCountLockPool"); 00127 00128 addRefP(_pRefCountLock); 00129 00130 if(_pRefCountLock != NULL) 00131 returnValue = true; 00132 } 00133 00134 return returnValue; 00135 }
|
|
|
Definition at line 137 of file OSGFieldContainerPtr.cpp. References _pRefCountLock, SINFO, osg::subRefP(), and osg::ThreadManager::the(). Referenced by osg::FieldContainerFactory::FieldContainerFactory(). 00138 { 00139 ThreadManager *pManager = ThreadManager::the(); 00140 00141 SINFO << "OSGFieldContainerPtrBase terminate" << std::endl; 00142 00143 if(pManager == NULL) 00144 return false; 00145 00146 subRefP(_pRefCountLock); 00147 00148 return true; 00149 }
|
|
||||||||||||||||
|
Definition at line 1143 of file OSGFieldContainerPtrImpl.inl. References osg::FieldContainer::changed(), osg::FieldContainer::executeSync(), getContainerSize(), getElemP(), osg::ChangedOrigin::Sync, osg::SyncInfo::syncMode, osg::SyncInfo::uiCopyOffset, and osg::SyncInfo::uiSyncInfo. Referenced by osg::ChangeList::apply(), and osg::ChangeList::applyTo(). 01146 { 01147 #if defined(OSG_FIXED_MFIELDSYNC) 01148 SyncInfo sInfo; 01149 01150 sInfo.syncMode = 0x0000; 01151 sInfo.uiSyncInfo = (uiFromAspect << 24) | (uiToAspect << 16); 01152 sInfo.uiCopyOffset = getContainerSize(); 01153 #endif 01154 01155 FieldContainer *pTo = ((FieldContainer *) getElemP(uiToAspect)); 01156 01157 #if !defined(OSG_FIXED_MFIELDSYNC) 01158 pTo->executeSync(*((FieldContainer *) getElemP(uiFromAspect)), 01159 whichField); 01160 #else 01161 pTo->executeSync(*((FieldContainer *) getElemP(uiFromAspect)), 01162 whichField, 01163 sInfo); 01164 #endif 01165 01166 pTo->changed(whichField, ChangedOrigin::Sync); 01167 }
|
|
|
Definition at line 66 of file OSGFieldContainerPtrImpl.inl. References _storeP. Referenced by addRef(), dump(), getRefCount(), and subRef().
|
|
|
Definition at line 72 of file OSGFieldContainerPtrImpl.inl. References _storeP.
|
|
|
Definition at line 78 of file OSGFieldContainerPtrImpl.inl. References _storeP. Referenced by deleteContainers(), dump(), and getFieldContainerId().
|
|
|
Definition at line 84 of file OSGFieldContainerPtrImpl.inl. References _storeP.
|
|
|
Definition at line 102 of file OSGFieldContainerPtrImpl.inl. References _storeP. Referenced by deleteContainers(), dump(), FieldContainerPtrBase(), getBaseCPtr(), osg::ConstFieldContainerPtr::getCPtr(), osg::FieldContainerPtr::getCPtr(), osg::ConstFieldContainerPtr::operator *(), osg::FieldContainerPtr::operator *(), osg::ConstFieldContainerPtr::operator->(), osg::FieldContainerPtr::operator->(), operator=(), and setNull(). 00103 { 00104 return _storeP; 00105 }
|
|
|
Definition at line 108 of file OSGFieldContainerPtrImpl.inl. References _storeP. 00109 { 00110 return _storeP; 00111 }
|
|
|
|
Definition at line 96 of file OSGFieldContainerPtrImpl.inl. References _containerSize, and _storeP. 00097 { 00098 return (_storeP + (_containerSize * uiElemNum)); 00099 }
|
|
|
Definition at line 117 of file OSGFieldContainerPtrImpl.inl. Referenced by deleteContainers().
|
|
|
Definition at line 123 of file OSGFieldContainerPtrImpl.inl.
|
|
|
Definition at line 129 of file OSGFieldContainerPtrImpl.inl.
|
|
|
Definition at line 135 of file OSGFieldContainerPtrImpl.inl. References _containerSize. Referenced by FieldContainerPtrBase(). 00136 { 00137 return (_containerSize * uiElemNum); 00138 }
|
|
|
Definition at line 413 of file OSGFieldContainerPtrImpl.inl. References _pRefCountLock, _storeP, osg::ChangeList::addAddRefd(), osg::LockPool::aquire(), osg::PThreadBase::getCurrentChangeList(), getRefCountP(), and osg::LockPool::release(). 00414 { 00415 _pRefCountLock->aquire(_storeP); 00416 00417 (*getRefCountP())++; 00418 00419 _pRefCountLock->release(_storeP); 00420 00421 Thread::getCurrentChangeList()- |