osg::FCPtr< BasePtrTypeT, FieldContainerTypeT > Class Template Reference
[Field Container]

#include <OSGFieldContainerPtrImpl.h>

List of all members.

Public Types

typedef FieldContainerTypeT StoredObjectType
typedef FCPtr ObjectType
typedef BasePtrTypeT Inherited
typedef FCPtr< BasePtrTypeT,
FieldContainerTypeT > 
Self

Public Member Functions

 OSG_PROPERTY_REQUIREMENT (BasePtrTypeT, Pointer)
Constructors


 FCPtr (void)
 FCPtr (const NullFieldContainerPtr &)
 FCPtr (const FCPtr &source)
Destructor


 ~FCPtr (void)
Container Access


FieldContainerTypeT * operator-> (void)
FieldContainerTypeT * operator-> (void) const
FieldContainerTypeT & operator* (void)
FieldContainerTypeT & operator* (void) const
FieldContainerTypeT * getCPtr (void)
FieldContainerTypeT * getCPtr (void) const
Assignment


void operator= (const FCPtr &source)
void operator= (const NullFieldContainerPtr &)
Container Constructors


 FCPtr (const FieldContainerTypeT &source)
 Container Constructor, used to work around MS Bugs, use them only if you really now what you are doing ;-).
 FCPtr (const FieldContainerTypeT *source)
 Container Constructor, used to work around MS Bugs, use them only if you really now what you are doing ;-).

Static Public Member Functions

dcast


template<class InTypeT>
static FCPtr dcast (const InTypeT oIn)

Protected Member Functions

Internal Constructors


 FCPtr (const FieldContainerTypeT *source, const UInt16 uiSize, const UInt16 uiParentPos)

Friends

class FieldContainer


Detailed Description

template<class BasePtrTypeT, class FieldContainerTypeT>
class osg::FCPtr< BasePtrTypeT, FieldContainerTypeT >

Template to construct custom field container pointers

Definition at line 567 of file OSGFieldContainerPtrImpl.h.


Member Typedef Documentation

template<class BasePtrTypeT, class FieldContainerTypeT>
typedef FieldContainerTypeT osg::FCPtr< BasePtrTypeT, FieldContainerTypeT >::StoredObjectType

Definition at line 575 of file OSGFieldContainerPtrImpl.h.

template<class BasePtrTypeT, class FieldContainerTypeT>
typedef FCPtr osg::FCPtr< BasePtrTypeT, FieldContainerTypeT >::ObjectType

Definition at line 576 of file OSGFieldContainerPtrImpl.h.

template<class BasePtrTypeT, class FieldContainerTypeT>
typedef BasePtrTypeT osg::FCPtr< BasePtrTypeT, FieldContainerTypeT >::Inherited

Definition at line 578 of file OSGFieldContainerPtrImpl.h.

template<class BasePtrTypeT, class FieldContainerTypeT>
typedef FCPtr<BasePtrTypeT, FieldContainerTypeT> osg::FCPtr< BasePtrTypeT, FieldContainerTypeT >::Self

Definition at line 581 of file OSGFieldContainerPtrImpl.h.


Constructor & Destructor Documentation

template<class BasePtrTypeT, class FieldContainerTypeT>
osg::FCPtr< BasePtrTypeT, FieldContainerTypeT >::FCPtr ( void   )  [inline]

Definition at line 799 of file OSGFieldContainerPtrImpl.inl.

00799                                                     :
00800     Inherited()
00801 {
00802 }

template<class BasePtrTypeT, class FieldContainerTypeT>
osg::FCPtr< BasePtrTypeT, FieldContainerTypeT >::FCPtr ( const NullFieldContainerPtr  )  [inline]

Definition at line 812 of file OSGFieldContainerPtrImpl.inl.

00812                                                                :
00813 
00814     Inherited()
00815 {
00816 }

template<class BasePtrTypeT, class FieldContainerTypeT>
osg::FCPtr< BasePtrTypeT, FieldContainerTypeT >::FCPtr ( const FCPtr< BasePtrTypeT, FieldContainerTypeT > &  source  )  [inline]

Definition at line 805 of file OSGFieldContainerPtrImpl.inl.

00805                                                                   :
00806     Inherited(source)
00807 {
00808 }

template<class BasePtrTypeT, class FieldContainerTypeT>
osg::FCPtr< BasePtrTypeT, FieldContainerTypeT >::~FCPtr ( void   )  [inline]

Definition at line 822 of file OSGFieldContainerPtrImpl.inl.

00823 {
00824 }

template<class BasePtrTypeT, class FieldContainerTypeT>
osg::FCPtr< BasePtrTypeT, FieldContainerTypeT >::FCPtr ( const FieldContainerTypeT &  source  )  [inline, explicit]

Definition at line 919 of file OSGFieldContainerPtrImpl.inl.

00919                                                                    :
00920 
00921     Inherited(source)
00922 {
00923 }

template<class BasePtrTypeT, class FieldContainerTypeT>
osg::FCPtr< BasePtrTypeT, FieldContainerTypeT >::FCPtr ( const FieldContainerTypeT *  source  )  [inline, explicit]

Definition at line 927 of file OSGFieldContainerPtrImpl.inl.

00927                                                                    :
00928 
00929     Inherited(source)
00930 {
00931 }

template<class BasePtrTypeT, class FieldContainerTypeT>
osg::FCPtr< BasePtrTypeT, FieldContainerTypeT >::FCPtr ( const FieldContainerTypeT *  source,
const UInt16  uiSize,
const UInt16  uiParentPos 
) [inline, protected]

Definition at line 935 of file OSGFieldContainerPtrImpl.inl.

00937                                                                            :
00938 
00939     Inherited(source, uiSize, uiParentEPos)
00940 {
00941 }


Member Function Documentation

template<class BasePtrTypeT, class FieldContainerTypeT>
osg::FCPtr< BasePtrTypeT, FieldContainerTypeT >::OSG_PROPERTY_REQUIREMENT ( BasePtrTypeT  ,
Pointer   
)

template<class BasePtrTypeT, class FieldContainerTypeT>
template<class InTypeT>
static FCPtr osg::FCPtr< BasePtrTypeT, FieldContainerTypeT >::dcast ( const InTypeT  oIn  )  [inline, static]

template<class BasePtrTypeT, class FieldContainerTypeT>
FieldContainerTypeT * osg::FCPtr< BasePtrTypeT, FieldContainerTypeT >::operator-> ( void   )  [inline]

Definition at line 831 of file OSGFieldContainerPtrImpl.inl.

References osg::PThreadBase::getAspect().

00832 {
00833 #if !defined(OSG_DEBUG_NO_FCPTR_ARITHM) 
00834     return (FieldContainerTypeT *) Self::getElemP(Thread::getAspect());
00835 #else
00836     return (FieldContainerTypeT *) Self::getFirstElemP();
00837 #endif
00838 }

template<class BasePtrTypeT, class FieldContainerTypeT>
FieldContainerTypeT * osg::FCPtr< BasePtrTypeT, FieldContainerTypeT >::operator-> ( void   )  const [inline]

Definition at line 842 of file OSGFieldContainerPtrImpl.inl.

References osg::PThreadBase::getAspect().

00843 {
00844 #if !defined(OSG_DEBUG_NO_FCPTR_ARITHM) 
00845     return (FieldContainerTypeT *) Self::getElemP(Thread::getAspect());
00846 #else
00847     return (FieldContainerTypeT *) Self::getFirstElemP();
00848 #endif
00849 }

template<class BasePtrTypeT, class FieldContainerTypeT>
FieldContainerTypeT & osg::FCPtr< BasePtrTypeT, FieldContainerTypeT >::operator* ( void   )  [inline]

Definition at line 853 of file OSGFieldContainerPtrImpl.inl.

References osg::PThreadBase::getAspect().

00854 {
00855 #if !defined(OSG_DEBUG_NO_FCPTR_ARITHM) 
00856     return *((FieldContainerTypeT *) Self::getElemP(Thread::getAspect()));
00857 #else
00858     return *((FieldContainerTypeT *) Self::getFirstElemP());
00859 #endif
00860 }

template<class BasePtrTypeT, class FieldContainerTypeT>
FieldContainerTypeT & osg::FCPtr< BasePtrTypeT, FieldContainerTypeT >::operator* ( void   )  const [inline]

Definition at line 864 of file OSGFieldContainerPtrImpl.inl.

References osg::PThreadBase::getAspect().

00865 {
00866 #if !defined(OSG_DEBUG_NO_FCPTR_ARITHM) 
00867     return *((FieldContainerTypeT *) Self::getElemP(Thread::getAspect()));
00868 #else
00869     return *((FieldContainerTypeT *) Self::getFirstElemP());
00870 #endif
00871 }

template<class BasePtrTypeT, class FieldContainerTypeT>
FieldContainerTypeT * osg::FCPtr< BasePtrTypeT, FieldContainerTypeT >::getCPtr ( void   )  [inline]

Definition at line 875 of file OSGFieldContainerPtrImpl.inl.

References osg::PThreadBase::getAspect().

00877 {
00878 #if !defined(OSG_DEBUG_NO_FCPTR_ARITHM) 
00879     return (FieldContainerTypeT *) Self::getElemP(Thread::getAspect());
00880 #else
00881     return (FieldContainerTypeT *) Self::getFirstElemP();
00882 #endif
00883 }

template<class BasePtrTypeT, class FieldContainerTypeT>
FieldContainerTypeT * osg::FCPtr< BasePtrTypeT, FieldContainerTypeT >::getCPtr ( void   )  const [inline]

Definition at line 887 of file OSGFieldContainerPtrImpl.inl.

References osg::PThreadBase::getAspect().

00888 {
00889 #if !defined(OSG_DEBUG_NO_FCPTR_ARITHM) 
00890     return (FieldContainerTypeT *) Self::getElemP(Thread::getAspect());
00891 #else
00892     return (FieldContainerTypeT *) Self::getFirstElemP();
00893 #endif
00894 }

template<class BasePtrTypeT, class FieldContainerTypeT>
void osg::FCPtr< BasePtrTypeT, FieldContainerTypeT >::operator= ( const FCPtr< BasePtrTypeT, FieldContainerTypeT > &  source  )  [inline]

Definition at line 901 of file OSGFieldContainerPtrImpl.inl.

00902 {
00903     // copy parts inherited from parent
00904     *(static_cast<Inherited *>(this)) = source;
00905 }

template<class BasePtrTypeT, class FieldContainerTypeT>
void osg::FCPtr< BasePtrTypeT, FieldContainerTypeT >::operator= ( const NullFieldContainerPtr  )  [inline]

Definition at line 908 of file OSGFieldContainerPtrImpl.inl.

00910 {
00911     Self::setNull();
00912 }


Friends And Related Function Documentation

template<class BasePtrTypeT, class FieldContainerTypeT>
friend class FieldContainer [friend]

Definition at line 663 of file OSGFieldContainerPtrImpl.h.


The documentation for this class was generated from the following files:

Generated on Mon Mar 17 12:05:00 2008 for OpenSG by  doxygen 1.5.5