Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

osg::FieldContainerPtr Class Reference
[Field Container]

#include <OSGFieldContainerPtrImpl.h>

Inheritance diagram for osg::FieldContainerPtr:

osg::FieldContainerPtrBase osg::AttachmentContainerPtr osg::AttachmentPtr osg::DVRClipGeometryPtr osg::DVRShaderPtr osg::NullFieldContainerPtr osg::StatePtr osg::BackgroundPtr osg::CameraPtr osg::CNodePtr osg::DisplayCalibrationPtr osg::ForegroundPtr osg::ImageComposerPtr osg::ImagePtr osg::MaterialPtr osg::NodeCorePtr osg::NodePtr osg::ShaderParameterPtr osg::ViewportPtr osg::WindowPtr osg::DVRClipObjectsPtr osg::DVRIsoSurfacePtr osg::DVRLookupTablePtr osg::DVRVolumeTexturePtr osg::StateChunkPtr osg::DVRIsoShaderPtr osg::DVRSimpleShaderPtr List of all members.

Public Types

typedef FieldContainer StoredObjectType
typedef FieldContainerPtr ObjectType
typedef FieldContainerPtrBase Inherited
typedef UInt8 *FieldContainerPtrBase::* unspecified_bool_type

Public Member Functions

 OSG_PROPERTY_DECL (Pointer)
Constructors
FieldContainerPtr (void)
 FieldContainerPtr (const NullFieldContainerPtr &)
 FieldContainerPtr (const FieldContainerPtr &source)
Destructor
~FieldContainerPtr (void)
Container Access
*FieldContaineroperator-> (void)
FieldContaineroperator-> (void) const
FieldContaineroperator * (void)
FieldContaineroperator * (void) const
FieldContainergetCPtr (void)
FieldContainergetCPtr (void) const
Assignment
*void operator= (const NullFieldContainerPtr &)
void operator= (const FieldContainerPtr &source)
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
*FieldContainergetBaseCPtr (void) const
FieldContainergetAspectCPtr (UInt32 uiAspectId) const
Comparison
*bool operator< (const NullFieldContainerPtr &) const
bool operator< (const FieldContainerPtrBase &) const
bool operator== (const NullFieldContainerPtr &other) const
bool operator== (const FieldContainerPtrBase &other) const
bool operator!= (const NullFieldContainerPtr &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

MT Edit
*void beginEdit (BitVector whichField, UInt32 origin) const
void endEdit (BitVector whichField, UInt32 origin) const
void changed (BitVector whichField, UInt32 origin) const
void endEditNotChanged (BitVector whichField, UInt32 origin) const
Constructors
FieldContainerPtr (const FieldContainer &source)
 FieldContainerPtr (const FieldContainer *source)
 FieldContainerPtr (const FieldContainer *source, const UInt16 uiSize, const UInt16 uiParentEPos)
Sync
*void executeSync (UInt32 uiFromAspect, UInt32 uiToAspect, BitVector whichField)
Get Memory Locations
*Int32getRefCountP (void)
Int32getRefCountP (void) const
UInt32getIdP (void)
UInt32getIdP (void) const
UInt8getFirstElemP (void)
UInt8getFirstElemP (void) const
UInt8getElemP (UInt32 uiElemNum)
UInt8getElemP (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

Friends

class FieldContainer
void beginEditCP (const FieldContainerPtr &objectP, BitVector whichField, UInt32 origin)
void endEditCP (const FieldContainerPtr &objectP, BitVector whichField, UInt32 origin)
void changedCP (const FieldContainerPtr &objectP, BitVector whichField, UInt32 origin)
void endEditNotChangedCP (const FieldContainerPtr &objectP, BitVector whichField, UInt32 origin)

Detailed Description

Definition at line 331 of file OSGFieldContainerPtrImpl.h.


Member Typedef Documentation

typedef FieldContainer osg::FieldContainerPtr::StoredObjectType
 

Reimplemented in osg::AttachmentContainerPtr, osg::AttachmentPtr, osg::CNodePtr, osg::NodePtr, and osg::FCPtr< MaterialDrawablePtr, Geometry >.

Definition at line 339 of file OSGFieldContainerPtrImpl.h.

typedef FieldContainerPtr osg::FieldContainerPtr::ObjectType
 

Reimplemented in osg::AttachmentContainerPtr, osg::AttachmentPtr, osg::CNodePtr, osg::NodePtr, and osg::FCPtr< MaterialDrawablePtr, Geometry >.

Definition at line 340 of file OSGFieldContainerPtrImpl.h.

typedef FieldContainerPtrBase osg::FieldContainerPtr::Inherited
 

Reimplemented in osg::AttachmentContainerPtr, osg::AttachmentPtr, osg::CNodePtr, osg::NullFieldContainerPtr, osg::NodePtr, and osg::FCPtr< MaterialDrawablePtr, Geometry >.

Definition at line 342 of file OSGFieldContainerPtrImpl.h.

typedef UInt8* FieldContainerPtrBase::* osg::FieldContainerPtrBase::unspecified_bool_type [inherited]
 

Definition at line 99 of file OSGFieldContainerPtrImpl.h.


Constructor & Destructor Documentation

osg::FieldContainerPtr::FieldContainerPtr void   )  [inline]
 

Definition at line 447 of file OSGFieldContainerPtrImpl.inl.

00447                                          :
00448     Inherited()
00449 {
00450 }

osg::FieldContainerPtr::FieldContainerPtr const NullFieldContainerPtr  )  [inline]
 

Definition at line 453 of file OSGFieldContainerPtrImpl.inl.

00453                                                                   :
00454     Inherited()
00455 {
00456 }

osg::FieldContainerPtr::FieldContainerPtr const FieldContainerPtr source  )  [inline]
 

Definition at line 459 of file OSGFieldContainerPtrImpl.inl.

00459                                                                     :
00460     Inherited(source)
00461 {
00462 }

osg::FieldContainerPtr::~FieldContainerPtr void   )  [inline]
 

Definition at line 468 of file OSGFieldContainerPtrImpl.inl.

00469 {
00470 }

osg::FieldContainerPtr::FieldContainerPtr const FieldContainer source  )  [inline, explicit, protected]
 

Definition at line 589 of file OSGFieldContainerPtrImpl.inl.

00589                                                                  :
00590     Inherited(source)
00591 {
00592 }

osg::FieldContainerPtr::FieldContainerPtr const FieldContainer source  )  [inline, explicit, protected]
 

Definition at line 595 of file OSGFieldContainerPtrImpl.inl.

00595                                                                  :
00596     Inherited(source)
00597 {
00598 }

osg::FieldContainerPtr::FieldContainerPtr const FieldContainer source,
const UInt16  uiSize,
const UInt16  uiParentEPos
[inline, protected]
 

Definition at line 601 of file OSGFieldContainerPtrImpl.inl.

00603                                                                          :
00604     Inherited(source, uiSize, uiParentEPos)
00605 {
00606 }


Member Function Documentation

osg::FieldContainerPtr::OSG_PROPERTY_DECL Pointer   ) 
 

FieldContainer * osg::FieldContainerPtr::operator-> void   )  [inline]
 

Reimplemented in osg::AttachmentContainerPtr, osg::AttachmentPtr, osg::CNodePtr, osg::NodePtr, and osg::FCPtr< MaterialDrawablePtr, Geometry >.

Definition at line 476 of file OSGFieldContainerPtrImpl.inl.

References osg::PThreadBase::getAspect(), osg::FieldContainerPtrBase::getElemP(), and osg::FieldContainerPtrBase::getFirstElemP().

Referenced by osg::AttachmentPtr::operator->(), and osg::AttachmentContainerPtr::operator->().

00477 {
00478 #if !defined(OSG_DEBUG_NO_FCPTR_ARITHM) 
00479     return (FieldContainer *) (getElemP(Thread::getAspect()));
00480 #else
00481     return (FieldContainer *) (getFirstElemP());
00482 #endif
00483 }

FieldContainer * osg::FieldContainerPtr::operator-> void   )  const [inline]
 

Reimplemented in osg::AttachmentContainerPtr, osg::AttachmentPtr, osg::CNodePtr, osg::NodePtr, and osg::FCPtr< MaterialDrawablePtr, Geometry >.

Definition at line 486 of file OSGFieldContainerPtrImpl.inl.

References osg::PThreadBase::getAspect(), osg::FieldContainerPtrBase::getElemP(), and osg::FieldContainerPtrBase::getFirstElemP().

00487 {
00488 #if !defined(OSG_DEBUG_NO_FCPTR_ARITHM) 
00489     return (FieldContainer *) (getElemP(Thread::getAspect()));
00490 #else
00491     return (FieldContainer *) (getFirstElemP());
00492 #endif
00493 }

FieldContainer & osg::FieldContainerPtr::operator * void   )  [inline]
 

Reimplemented in osg::AttachmentContainerPtr, osg::AttachmentPtr, osg::CNodePtr, osg::NodePtr, and osg::FCPtr< MaterialDrawablePtr, Geometry >.

Definition at line 496 of file OSGFieldContainerPtrImpl.inl.

References osg::PThreadBase::getAspect(), osg::FieldContainerPtrBase::getElemP(), and osg::FieldContainerPtrBase::getFirstElemP().

00497 { 
00498 #if !defined(OSG_DEBUG_NO_FCPTR_ARITHM) 
00499     return *((FieldContainer *) (getElemP(Thread::getAspect())));
00500 #else
00501     return *((FieldContainer *) (getFirstElemP()));
00502 #endif
00503 }

FieldContainer & osg::FieldContainerPtr::operator * void   )  const [inline]
 

Reimplemented in osg::AttachmentContainerPtr, osg::AttachmentPtr, osg::CNodePtr, osg::NodePtr, and osg::FCPtr< MaterialDrawablePtr, Geometry >.

Definition at line 506 of file OSGFieldContainerPtrImpl.inl.

References osg::PThreadBase::getAspect(), osg::FieldContainerPtrBase::getElemP(), and osg::FieldContainerPtrBase::getFirstElemP().

00507 {
00508 #if !defined(OSG_DEBUG_NO_FCPTR_ARITHM) 
00509     return *((FieldContainer *) (getElemP(Thread::getAspect())));
00510 #else
00511     return *((FieldContainer *) (getFirstElemP()));
00512 #endif
00513 }

FieldContainer * osg::FieldContainerPtr::getCPtr void   )  [inline]
 

Reimplemented in osg::AttachmentContainerPtr, osg::AttachmentPtr, osg::CNodePtr, osg::NodePtr, and osg::FCPtr< MaterialDrawablePtr, Geometry >.

Definition at line 516 of file OSGFieldContainerPtrImpl.inl.

References osg::PThreadBase::getAspect(), osg::FieldContainerPtrBase::getElemP(), and osg::FieldContainerPtrBase::getFirstElemP().

Referenced by osg::RenderAction::dropFunctor(), osg::RenderAction::dropGeometry(), osg::AttachmentPtr::getCPtr(), and osg::AttachmentContainerPtr::getCPtr().

00517 {
00518 #if !defined(OSG_DEBUG_NO_FCPTR_ARITHM) 
00519     return (FieldContainer *) (getElemP(Thread::getAspect()));
00520 #else
00521     return (FieldContainer *) (getFirstElemP());
00522 #endif
00523 }

FieldContainer * osg::FieldContainerPtr::getCPtr void   )  const [inline]
 

Reimplemented in osg::AttachmentContainerPtr, osg::AttachmentPtr, osg::CNodePtr, osg::NodePtr, and osg::FCPtr< MaterialDrawablePtr, Geometry >.

Definition at line 526 of file OSGFieldContainerPtrImpl.inl.

References osg::PThreadBase::getAspect(), osg::FieldContainerPtrBase::getElemP(), and osg::FieldContainerPtrBase::getFirstElemP().

00527 {
00528 #if !defined(OSG_DEBUG_NO_FCPTR_ARITHM) 
00529     return (FieldContainer *) (getElemP(Thread::getAspect()));
00530 #else
00531     return (FieldContainer *) (getFirstElemP());
00532 #endif
00533 }

void osg::FieldContainerPtr::operator= const NullFieldContainerPtr  )  [inline]
 

Reimplemented from osg::FieldContainerPtrBase.

Reimplemented in osg::AttachmentContainerPtr, osg::AttachmentPtr, osg::CNodePtr, osg::NodePtr, and osg::FCPtr< MaterialDrawablePtr, Geometry >.

Definition at line 539 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::setNull().

00540 {
00541     setNull();
00542 }

void osg::FieldContainerPtr::operator= const FieldContainerPtr source  )  [inline]
 

Definition at line 545 of file OSGFieldContainerPtrImpl.inl.

00546 {
00547     *(static_cast<Inherited *>(this)) = source;
00548 }

void osg::FieldContainerPtr::beginEdit BitVector  whichField,
UInt32  origin
const [inline, protected]
 

Definition at line 554 of file OSGFieldContainerPtrImpl.inl.

References osg::PThreadBase::getAspect(), and osg::FieldContainerPtrBase::getContainerSize().

00556 {
00557 #ifdef OSG_FIXED_MFIELDSYNC 
00558     (*this)->execBeginEdit(whichField,
00559                            Thread::getAspect(), 
00560                            getContainerSize());
00561 #endif
00562 }

void osg::FieldContainerPtr::endEdit BitVector  whichField,
UInt32  origin
const [inline, protected]
 

Definition at line 578 of file OSGFieldContainerPtrImpl.inl.

References changed(), and endEditNotChanged().

00579 {
00580     endEditNotChanged(whichField, origin);
00581     changed(whichField, origin);
00582 }

void osg::FieldContainerPtr::changed BitVector  whichField,
UInt32  origin
const [inline, protected]
 

Definition at line 572 of file OSGFieldContainerPtrImpl.inl.

Referenced by endEdit().

00573 {
00574     (*this)->changed(whichField, origin);
00575 }

void osg::FieldContainerPtr::endEditNotChanged BitVector  whichField,
UInt32  origin
const [inline, protected]
 

Definition at line 565 of file OSGFieldContainerPtrImpl.inl.

References osg::ChangeList::addChanged(), and osg::PThreadBase::getCurrentChangeList().

Referenced by endEdit().

00567 {
00568     Thread::getCurrentChangeList()->addChanged(*this, whichField);
00569 }

void osg::FieldContainerPtrBase::setParentFieldPos UInt16  uiParentEPos  )  [inline, inherited]
 

Definition at line 201 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::_uiParentEPos.

Referenced by osg::SharePtrGraphOp::addAttachmentParent(), osg::SharePtrGraphOp::clearAttachmentParent(), osg::SharePtrGraphOp::compareFCs(), osg::Particles::setColors(), osg::Geometry::setColors(), osg::Node::setCore(), osg::Geometry::setIndices(), osg::Geometry::setLengths(), osg::Particles::setNormals(), osg::Geometry::setNormals(), osg::Particles::setPositions(), osg::Geometry::setPositions(), osg::Geometry::setSecondaryColors(), osg::Particles::setSecPositions(), osg::Geometry::setTexCoords(), osg::Geometry::setTexCoords1(), osg::Geometry::setTexCoords2(), osg::Geometry::setTexCoords3(), and osg::Geometry::setTypes().

00202 {
00203     _uiParentEPos = uiParentEPos;
00204 }

UInt16 osg::FieldContainerPtrBase::getParentFieldPos void   )  const [inline, inherited]
 

Definition at line 207 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::_uiParentEPos.

00208 {
00209     return _uiParentEPos;
00210 }

Int32 osg::FieldContainerPtrBase::getRefCount void   )  const [inline, inherited]
 

Definition at line 216 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::_storeP, and osg::FieldContainerPtrBase::getRefCountP().

00217 {
00218     if(_storeP == NULL)
00219         return 0;
00220         
00221     return (*getRefCountP());
00222 }

UInt32 osg::FieldContainerPtrBase::getFieldContainerId void   )  const [inline, inherited]
 

Definition at line 225 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::getIdP().

Referenced by osg::RemoteAspect::_defaultChangedFunction(), osg::RemoteAspect::_defaultCreatedFunction(), osg::RemoteAspect::_defaultDestroyedFunction(), osg::ChangeList::addAddRefd(), osg::ChangeList::addChanged(), osg::VRMLWriteAction::addContainerUse(), osg::VRMLWriteAction::addNodeUse(), osg::ChangeList::addSubRefd(), osg::BINWriter::addToIdMap(), osg::FieldTraitsRecurseMapper< FieldContainerPtr, false >::copyToBin(), osg::BINLoader::createFieldContainers(), osg::BINWriter::doIndexFC(), osg::NodeCore::dump(), osg::Node::dump(), osg::Geometry::dump(), osg::Attachment::dump(), osg::VRMLWriteAction::getInfo(), osg::ClusterWindow::getNetwork(), osg::RemoteAspect::receiveSync(), osg::RemoteAspect::sendSync(), osg::OSGWriter::FCInfoHelper::setName(), osg::FieldContainerFactory::unregisterFieldContainer(), and osg::TileLoadBalancer::updateSubtree().

00226 {
00227     return (*getIdP());
00228 }

UInt16 osg::FieldContainerPtrBase::getContainerSize void   )  const [inline, inherited]
 

Definition at line 231 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::_containerSize.

Referenced by beginEdit(), and osg::FieldContainerPtrBase::executeSync().

00232 {
00233     return _containerSize;
00234 }

FieldContainer * osg::FieldContainerPtrBase::getBaseCPtr void   )  const [inline, inherited]
 

Definition at line 237 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::getFirstElemP().

Referenced by osg::FieldTraitsRecurseMapper< FieldContainerPtr, false >::putToString().

00238 {
00239     return reinterpret_cast<FieldContainer *>(getFirstElemP());
00240 }

FieldContainer * osg::FieldContainerPtrBase::getAspectCPtr UInt32  uiAspectId  )  const [inline, inherited]
 

Definition at line 243 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::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 }

bool osg::FieldContainerPtrBase::operator< const NullFieldContainerPtr  )  const [inline, inherited]
 

Definition at line 281 of file OSGFieldContainerPtrImpl.inl.

00283 {
00284     return false;
00285 }

bool osg::FieldContainerPtrBase::operator< const FieldContainerPtrBase  )  const [inline, inherited]
 

Definition at line 303 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::_storeP.

00305 {
00306     return _storeP < other._storeP;
00307 }

bool osg::FieldContainerPtrBase::operator== const NullFieldContainerPtr other  )  const [inline, inherited]
 

Definition at line 288 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::_storeP.

00290 {
00291     return _storeP == NULL;
00292 }

bool osg::FieldContainerPtrBase::operator== const FieldContainerPtrBase other  )  const [inline, inherited]
 

Definition at line 310 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::_storeP.

00312 {
00313     return _storeP == other._storeP;
00314 }

bool osg::FieldContainerPtrBase::operator!= const NullFieldContainerPtr other  )  const [inline, inherited]
 

Definition at line 295 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::_storeP.

00297 {
00298     return _storeP != NULL;
00299 }

bool osg::FieldContainerPtrBase::operator!= const FieldContainerPtrBase other  )  const [inline, inherited]
 

Definition at line 317 of file OSGFieldContainerPtrImpl.inl.

00319 {
00320     return ! (*this == other);
00321 }

bool osg::FieldContainerPtrBase::operator! void   )  const [inline, inherited]
 

Definition at line 324 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::_storeP.

00325 {
00326     return _storeP == NULL;
00327 }

osg::FieldContainerPtrBase::operator FieldContainerPtrBase::unspecified_bool_type  )  const [inline, inherited]
 

Definition at line 330 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::_storeP.

00331 {
00332     return !*this ? 0 : &FieldContainerPtrBase::_storeP;
00333 }

void FieldContainerPtrBase::dump UInt32  uiIndent = 0,
const BitVector  bvFlags = 0
const [inherited]
 

Definition at line 82 of file OSGFieldContainerPtr.cpp.

References osg::FieldContainerPtrBase::_storeP, osg::FieldContainerPtrBase::getFirstElemP(), osg::FieldContainerPtrBase::getIdP(), osg::FieldContainerPtrBase::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 }

bool FieldContainerPtrBase::initialize void   )  [static, protected, inherited]
 

Definition at line 117 of file OSGFieldContainerPtr.cpp.

References osg::FieldContainerPtrBase::_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 }

bool FieldContainerPtrBase::terminate void   )  [static, protected, inherited]
 

Definition at line 137 of file OSGFieldContainerPtr.cpp.

References osg::FieldContainerPtrBase::_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 }

void osg::FieldContainerPtrBase::executeSync UInt32  uiFromAspect,
UInt32  uiToAspect,
BitVector  whichField
[inline, protected, inherited]
 

Definition at line 1143 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainer::changed(), osg::FieldContainer::executeSync(), osg::FieldContainerPtrBase::getContainerSize(), osg::FieldContainerPtrBase::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 }

Int32 * osg::FieldContainerPtrBase::getRefCountP void   )  [inline, protected, inherited]
 

Definition at line 66 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::_storeP.

Referenced by osg::FieldContainerPtrBase::addRef(), osg::FieldContainerPtrBase::dump(), osg::FieldContainerPtrBase::getRefCount(), and osg::FieldContainerPtrBase::subRef().

00067 {
00068     return (Int32 *) (_storeP - sizeof(Int32) - sizeof(UInt32));
00069 }

Int32 * osg::FieldContainerPtrBase::getRefCountP