#include <smartptr.h>
Inheritance diagram for IRefCount:
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 > |
Classes may implement it themselves, or SmartPtr will provide its internal implementation of IRefCount
virtual ~IRefCount | ( | ) | [inline, protected, virtual] |
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 >.
friend class SmartPtr< T > [friend] |
friend class ParentPtr< T > [friend] |