IRefCount Class Template Reference

An interface for reference counting. More...

#include <smartptr.h>

Inheritance diagram for IRefCount:

RefCount BodyReader BodyStream BodyWriter BodyWriter::StreamInfo BodyWriterHandler ClassRecord Component DataChunk Decrypt_Base Dictionary Encrypt_Base EssenceParser::WrappingConfig EssenceSink EssenceSource EssenceStreamDescriptor EssenceSubParser EssenceSubParserFactory FileParser GCReader GCReadHandler_Base GCWriter Hash_Base IndexEntry IndexManager IndexPos IndexSegment IndexTable KLVObject KLVReadHandler_Base Label MDObject MDObjectList MDOType MDTraits MDType MDValue Metadata MXFFile NewFileHandler Package ParserDescriptorList Partition PartitionInfo Primer ReorderIndex SmartPtr::__RefCounter SymbolSpace Track TypeRecord UL UMID UUID VBILine WrappingOption List of all members.

Protected Member Functions

virtual void __IncRefCount ()=0
 Increment the number of references.
virtual void __DecRefCount ()=0
 Decrement the number of references, if none left delete the object.
virtual T * GetPtr ()=0
 Get a pointer to the object.
virtual IRefCount< T > * GetRef ()=0
 Get a pointer to the reference counter.
virtual void AddRef (ParentPtr< T > &Ptr)=0
 Add a parent pointer to this object.
virtual void DeleteRef (ParentPtr< T > &Ptr)=0
 Delete a parent pointer to this object.
virtual void ClearParents (void)=0
 Clear all parent pointers.
virtual ~IRefCount ()

Friends

class SmartPtr< T >
class ParentPtr< T >

Detailed Description

template<class T>
class mxflib::IRefCount< T >

An interface for reference counting.

Classes may implement it themselves, or SmartPtr will provide its internal implementation of IRefCount


Constructor & Destructor Documentation

virtual ~IRefCount (  )  [inline, protected, virtual]


Member Function Documentation

virtual void __IncRefCount (  )  [protected, pure virtual]

Increment the number of references.

Implemented in RefCount, RefCount< mxflib::WrappingOption >, RefCount< mxflib::Primer >, RefCount< mxflib::GCWriter >, RefCount< mxflib::UL >, RefCount< mxflib::Component >, RefCount< mxflib::IndexPos >, RefCount< mxflib::KLVReadHandler_Base >, RefCount< mxflib::DataChunk >, RefCount< mxflib::EssenceStreamDescriptor >, RefCount< mxflib::Partition >, RefCount< mxflib::Dictionary >, RefCount< mxflib::KLVObject >, RefCount< mxflib::BodyReader >, RefCount< mxflib::Hash_Base >, RefCount< mxflib::MDValue >, RefCount< mxflib::BodyWriter::StreamInfo >, RefCount< mxflib::FileParser >, RefCount< mxflib::ParserDescriptorList >, RefCount< mxflib::EssenceSource >, RefCount< mxflib::MDType >, RefCount< mxflib::EssenceParser::WrappingConfig >, RefCount< mxflib::MDTraits >, RefCount< mxflib::EssenceSubParser >, RefCount< mxflib::EssenceSink >, RefCount< mxflib::IndexSegment >, RefCount< mxflib::Track >, RefCount< mxflib::ReorderIndex >, RefCount< mxflib::VBILine >, RefCount< mxflib::MDObjectList >, RefCount< mxflib::MDObject >, RefCount< mxflib::Encrypt_Base >, RefCount< mxflib::UMID >, RefCount< mxflib::MXFFile >, RefCount< mxflib::GCReadHandler_Base >, RefCount< mxflib::NewFileHandler >, RefCount< mxflib::IndexTable >, RefCount< mxflib::BodyWriterHandler >, RefCount< mxflib::Metadata >, RefCount< mxflib::Label >, RefCount< mxflib::ClassRecord >, RefCount< mxflib::SymbolSpace >, RefCount< mxflib::Package >, RefCount< mxflib::BodyWriter >, RefCount< mxflib::Decrypt_Base >, RefCount< mxflib::GCReader >, RefCount< mxflib::PartitionInfo >, RefCount< mxflib::MDOType >, RefCount< mxflib::TypeRecord >, RefCount< mxflib::IndexManager >, RefCount< mxflib::IndexEntry >, RefCount< mxflib::UUID >, RefCount< mxflib::BodyStream >, and RefCount< mxflib::EssenceSubParserFactory >.

virtual void __DecRefCount (  )  [protected, pure virtual]

Decrement the number of references, if none left delete the object.

Implemented in RefCount, RefCount< mxflib::WrappingOption >, RefCount< mxflib::Primer >, RefCount< mxflib::GCWriter >, RefCount< mxflib::UL >, RefCount< mxflib::Component >, RefCount< mxflib::IndexPos >, RefCount< mxflib::KLVReadHandler_Base >, RefCount< mxflib::DataChunk >, RefCount< mxflib::EssenceStreamDescriptor >, RefCount< mxflib::Partition >, RefCount< mxflib::Dictionary >, RefCount< mxflib::KLVObject >, RefCount< mxflib::BodyReader >, RefCount< mxflib::Hash_Base >, RefCount< mxflib::MDValue >, RefCount< mxflib::BodyWriter::StreamInfo >, RefCount< mxflib::FileParser >, RefCount< mxflib::ParserDescriptorList >, RefCount< mxflib::EssenceSource >, RefCount< mxflib::MDType >, RefCount< mxflib::EssenceParser::WrappingConfig >, RefCount< mxflib::MDTraits >, RefCount< mxflib::EssenceSubParser >, RefCount< mxflib::EssenceSink >, RefCount< mxflib::IndexSegment >, RefCount< mxflib::Track >, RefCount< mxflib::ReorderIndex >, RefCount< mxflib::VBILine >, RefCount< mxflib::MDObjectList >, RefCount< mxflib::MDObject >, RefCount< mxflib::Encrypt_Base >, RefCount< mxflib::UMID >, RefCount< mxflib::MXFFile >, RefCount< mxflib::GCReadHandler_Base >, RefCount< mxflib::NewFileHandler >, RefCount< mxflib::IndexTable >, RefCount< mxflib::BodyWriterHandler >, RefCount< mxflib::Metadata >, RefCount< mxflib::Label >, RefCount< mxflib::ClassRecord >, RefCount< mxflib::SymbolSpace >, RefCount< mxflib::Package >, RefCount< mxflib::BodyWriter >, RefCount< mxflib::Decrypt_Base >, RefCount< mxflib::GCReader >, RefCount< mxflib::PartitionInfo >, RefCount< mxflib::MDOType >, RefCount< mxflib::TypeRecord >, RefCount< mxflib::IndexManager >, RefCount< mxflib::IndexEntry >, RefCount< mxflib::UUID >, RefCount< mxflib::BodyStream >, and RefCount< mxflib::EssenceSubParserFactory >.

virtual T* GetPtr (  )  [protected, pure virtual]

Get a pointer to the object.

Implemented in RefCount, RefCount< mxflib::WrappingOption >, RefCount< mxflib::Primer >, RefCount< mxflib::GCWriter >, RefCount< mxflib::UL >, RefCount< mxflib::Component >, RefCount< mxflib::IndexPos >, RefCount< mxflib::KLVReadHandler_Base >, RefCount< mxflib::DataChunk >, RefCount< mxflib::EssenceStreamDescriptor >, RefCount< mxflib::Partition >, RefCount< mxflib::Dictionary >, RefCount< mxflib::KLVObject >, RefCount< mxflib::BodyReader >, RefCount< mxflib::Hash_Base >, RefCount< mxflib::MDValue >, RefCount< mxflib::BodyWriter::StreamInfo >, RefCount< mxflib::FileParser >, RefCount< mxflib::ParserDescriptorList >, RefCount< mxflib::EssenceSource >, RefCount< mxflib::MDType >, RefCount< mxflib::EssenceParser::WrappingConfig >, RefCount< mxflib::MDTraits >, RefCount< mxflib::EssenceSubParser >, RefCount< mxflib::EssenceSink >, RefCount< mxflib::IndexSegment >, RefCount< mxflib::Track >, RefCount< mxflib::ReorderIndex >, RefCount< mxflib::VBILine >, RefCount< mxflib::MDObjectList >, RefCount< mxflib::MDObject >, RefCount< mxflib::Encrypt_Base >, RefCount< mxflib::UMID >, RefCount< mxflib::MXFFile >, RefCount< mxflib::GCReadHandler_Base >, RefCount< mxflib::NewFileHandler >, RefCount< mxflib::IndexTable >, RefCount< mxflib::BodyWriterHandler >, RefCount< mxflib::Metadata >, RefCount< mxflib::Label >, RefCount< mxflib::ClassRecord >, RefCount< mxflib::SymbolSpace >, RefCount< mxflib::Package >, RefCount< mxflib::BodyWriter >, RefCount< mxflib::Decrypt_Base >, RefCount< mxflib::GCReader >, RefCount< mxflib::PartitionInfo >, RefCount< mxflib::MDOType >, RefCount< mxflib::TypeRecord >, RefCount< mxflib::IndexManager >, RefCount< mxflib::IndexEntry >, RefCount< mxflib::UUID >, RefCount< mxflib::BodyStream >, and RefCount< mxflib::EssenceSubParserFactory >.

virtual IRefCount<T>* GetRef (  )  [protected, pure virtual]

Get a pointer to the reference counter.

Implemented in RefCount, RefCount< mxflib::WrappingOption >, RefCount< mxflib::Primer >, RefCount< mxflib::GCWriter >, RefCount< mxflib::UL >, RefCount< mxflib::Component >, RefCount< mxflib::IndexPos >, RefCount< mxflib::KLVReadHandler_Base >, RefCount< mxflib::DataChunk >, RefCount< mxflib::EssenceStreamDescriptor >, RefCount< mxflib::Partition >, RefCount< mxflib::Dictionary >, RefCount< mxflib::KLVObject >, RefCount< mxflib::BodyReader >, RefCount< mxflib::Hash_Base >, RefCount< mxflib::MDValue >, RefCount< mxflib::BodyWriter::StreamInfo >, RefCount< mxflib::FileParser >, RefCount< mxflib::ParserDescriptorList >, RefCount< mxflib::EssenceSource >, RefCount< mxflib::MDType >, RefCount< mxflib::EssenceParser::WrappingConfig >, RefCount< mxflib::MDTraits >, RefCount< mxflib::EssenceSubParser >, RefCount< mxflib::EssenceSink >, RefCount< mxflib::IndexSegment >, RefCount< mxflib::Track >, RefCount< mxflib::ReorderIndex >, RefCount< mxflib::VBILine >, RefCount< mxflib::MDObjectList >, RefCount< mxflib::MDObject >, RefCount< mxflib::Encrypt_Base >, RefCount< mxflib::UMID >, RefCount< mxflib::MXFFile >, RefCount< mxflib::GCReadHandler_Base >, RefCount< mxflib::NewFileHandler >, RefCount< mxflib::IndexTable >, RefCount< mxflib::BodyWriterHandler >, RefCount< mxflib::Metadata >, RefCount< mxflib::Label >, RefCount< mxflib::ClassRecord >, RefCount< mxflib::SymbolSpace >, RefCount< mxflib::Package >, RefCount< mxflib::BodyWriter >, RefCount< mxflib::Decrypt_Base >, RefCount< mxflib::GCReader >, RefCount< mxflib::PartitionInfo >, RefCount< mxflib::MDOType >, RefCount< mxflib::TypeRecord >, RefCount< mxflib::IndexManager >, RefCount< mxflib::IndexEntry >, RefCount< mxflib::UUID >, RefCount< mxflib::BodyStream >, and RefCount< mxflib::EssenceSubParserFactory >.

virtual void AddRef ( ParentPtr< T > &  Ptr  )  [protected, pure virtual]

Add a parent pointer to this object.

Implemented in RefCount, RefCount< mxflib::WrappingOption >, RefCount< mxflib::Primer >, RefCount< mxflib::GCWriter >, RefCount< mxflib::UL >, RefCount< mxflib::Component >, RefCount< mxflib::IndexPos >, RefCount< mxflib::KLVReadHandler_Base >, RefCount< mxflib::DataChunk >, RefCount< mxflib::EssenceStreamDescriptor >, RefCount< mxflib::Partition >, RefCount< mxflib::Dictionary >, RefCount< mxflib::KLVObject >, RefCount< mxflib::BodyReader >, RefCount< mxflib::Hash_Base >, RefCount< mxflib::MDValue >, RefCount< mxflib::BodyWriter::StreamInfo >, RefCount< mxflib::FileParser >, RefCount< mxflib::ParserDescriptorList >, RefCount< mxflib::EssenceSource >, RefCount< mxflib::MDType >, RefCount< mxflib::EssenceParser::WrappingConfig >, RefCount< mxflib::MDTraits >, RefCount< mxflib::EssenceSubParser >, RefCount< mxflib::EssenceSink >, RefCount< mxflib::IndexSegment >, RefCount< mxflib::Track >, RefCount< mxflib::ReorderIndex >, RefCount< mxflib::VBILine >, RefCount< mxflib::MDObjectList >, RefCount< mxflib::MDObject >, RefCount< mxflib::Encrypt_Base >, RefCount< mxflib::UMID >, RefCount< mxflib::MXFFile >, RefCount< mxflib::GCReadHandler_Base >, RefCount< mxflib::NewFileHandler >, RefCount< mxflib::IndexTable >, RefCount< mxflib::BodyWriterHandler >, RefCount< mxflib::Metadata >, RefCount< mxflib::Label >, RefCount< mxflib::ClassRecord >, RefCount< mxflib::SymbolSpace >, RefCount< mxflib::Package >, RefCount< mxflib::BodyWriter >, RefCount< mxflib::Decrypt_Base >, RefCount< mxflib::GCReader >, RefCount< mxflib::PartitionInfo >, RefCount< mxflib::MDOType >, RefCount< mxflib::TypeRecord >, RefCount< mxflib::IndexManager >, RefCount< mxflib::IndexEntry >, RefCount< mxflib::UUID >, RefCount< mxflib::BodyStream >, and RefCount< mxflib::EssenceSubParserFactory >.

virtual void DeleteRef ( ParentPtr< T > &  Ptr  )  [protected, pure virtual]

Delete a parent pointer to this object.

Implemented in RefCount, RefCount< mxflib::WrappingOption >, RefCount< mxflib::Primer >, RefCount< mxflib::GCWriter >, RefCount< mxflib::UL >, RefCount< mxflib::Component >, RefCount< mxflib::IndexPos >, RefCount< mxflib::KLVReadHandler_Base >, RefCount< mxflib::DataChunk >, RefCount< mxflib::EssenceStreamDescriptor >, RefCount< mxflib::Partition >, RefCount< mxflib::Dictionary >, RefCount< mxflib::KLVObject >, RefCount< mxflib::BodyReader >, RefCount< mxflib::Hash_Base >, RefCount< mxflib::MDValue >, RefCount< mxflib::BodyWriter::StreamInfo >, RefCount< mxflib::FileParser >, RefCount< mxflib::ParserDescriptorList >, RefCount< mxflib::EssenceSource >, RefCount< mxflib::MDType >, RefCount< mxflib::EssenceParser::WrappingConfig >, RefCount< mxflib::MDTraits >, RefCount< mxflib::EssenceSubParser >, RefCount< mxflib::EssenceSink >, RefCount< mxflib::IndexSegment >, RefCount< mxflib::Track >, RefCount< mxflib::ReorderIndex >, RefCount< mxflib::VBILine >, RefCount< mxflib::MDObjectList >, RefCount< mxflib::MDObject >, RefCount< mxflib::Encrypt_Base >, RefCount< mxflib::UMID >, RefCount< mxflib::MXFFile >, RefCount< mxflib::GCReadHandler_Base >, RefCount< mxflib::NewFileHandler >, RefCount< mxflib::IndexTable >, RefCount< mxflib::BodyWriterHandler >, RefCount< mxflib::Metadata >, RefCount< mxflib::Label >, RefCount< mxflib::ClassRecord >, RefCount< mxflib::SymbolSpace >, RefCount< mxflib::Package >, RefCount< mxflib::BodyWriter >, RefCount< mxflib::Decrypt_Base >, RefCount< mxflib::GCReader >, RefCount< mxflib::PartitionInfo >, RefCount< mxflib::MDOType >, RefCount< mxflib::TypeRecord >, RefCount< mxflib::IndexManager >, RefCount< mxflib::IndexEntry >, RefCount< mxflib::UUID >, RefCount< mxflib::BodyStream >, and RefCount< mxflib::EssenceSubParserFactory >.

virtual void ClearParents ( void   )  [protected, pure virtual]

Clear all parent pointers.

Implemented in RefCount, RefCount< mxflib::WrappingOption >, RefCount< mxflib::Primer >, RefCount< mxflib::GCWriter >, RefCount< mxflib::UL >, RefCount< mxflib::Component >, RefCount< mxflib::IndexPos >, RefCount< mxflib::KLVReadHandler_Base >, RefCount< mxflib::DataChunk >, RefCount< mxflib::EssenceStreamDescriptor >, RefCount< mxflib::Partition >, RefCount< mxflib::Dictionary >, RefCount< mxflib::KLVObject >, RefCount< mxflib::BodyReader >, RefCount< mxflib::Hash_Base >, RefCount< mxflib::MDValue >, RefCount< mxflib::BodyWriter::StreamInfo >, RefCount< mxflib::FileParser >, RefCount< mxflib::ParserDescriptorList >, RefCount< mxflib::EssenceSource >, RefCount< mxflib::MDType >, RefCount< mxflib::EssenceParser::WrappingConfig >, RefCount< mxflib::MDTraits >, RefCount< mxflib::EssenceSubParser >, RefCount< mxflib::EssenceSink >, RefCount< mxflib::IndexSegment >, RefCount< mxflib::Track >, RefCount< mxflib::ReorderIndex >, RefCount< mxflib::VBILine >, RefCount< mxflib::MDObjectList >, RefCount< mxflib::MDObject >, RefCount< mxflib::Encrypt_Base >, RefCount< mxflib::UMID >, RefCount< mxflib::MXFFile >, RefCount< mxflib::GCReadHandler_Base >, RefCount< mxflib::NewFileHandler >, RefCount< mxflib::IndexTable >, RefCount< mxflib::BodyWriterHandler >, RefCount< mxflib::Metadata >, RefCount< mxflib::Label >, RefCount< mxflib::ClassRecord >, RefCount< mxflib::SymbolSpace >, RefCount< mxflib::Package >, RefCount< mxflib::BodyWriter >, RefCount< mxflib::Decrypt_Base >, RefCount< mxflib::GCReader >, RefCount< mxflib::PartitionInfo >, RefCount< mxflib::MDOType >, RefCount< mxflib::TypeRecord >, RefCount< mxflib::IndexManager >, RefCount< mxflib::IndexEntry >, RefCount< mxflib::UUID >, RefCount< mxflib::BodyStream >, and RefCount< mxflib::EssenceSubParserFactory >.


Friends And Related Function Documentation

friend class SmartPtr< T > [friend]

friend class ParentPtr< T > [friend]


The documentation for this class was generated from the following file:
Generated on Mon Apr 2 15:21:01 2007 for MXFLib by  doxygen 1.5.1-p1