Open CASCADE Technology 7.8.2.dev
TDF_Data Class Reference

This class is used to manipulate a complete independent, self sufficient data structure and its services: More...

#include <TDF_Data.hxx>

Inheritance diagram for TDF_Data:

Public Member Functions

 TDF_Data ()
 A new and empty Data structure.
 
const TDF_Label Root () const
 Returns the root label of the Data structure.
 
Standard_Integer Transaction () const
 Returns the current transaction number.
 
Standard_Integer Time () const
 Returns the current tick. It is incremented each Commit.
 
Standard_Boolean IsApplicable (const Handle< TDF_Delta > &aDelta) const
 Returns true if <aDelta> is applicable HERE and NOW.
 
Handle< TDF_DeltaUndo (const Handle< TDF_Delta > &aDelta, const Standard_Boolean withDelta=Standard_False)
 Apply <aDelta> to undo a set of attribute modifications.
 
void Destroy ()
 
 ~TDF_Data ()
 
Standard_Boolean NotUndoMode () const
 Returns the undo mode status.
 
Standard_OStreamDump (Standard_OStream &anOS) const
 Dumps the Data on <aStream>.
 
Standard_OStreamoperator<< (Standard_OStream &anOS) const
 
void AllowModification (const Standard_Boolean isAllowed)
 Sets modification mode.
 
Standard_Boolean IsModificationAllowed () const
 returns modification mode.
 
void SetAccessByEntries (const Standard_Boolean aSet)
 Initializes a mechanism for fast access to the labels by their entries. The fast access is useful for large documents and often access to the labels via entries. Internally, a table of entry - label is created, which allows to obtain a label by its entry in a very fast way. If the mechanism is turned off, the internal table is cleaned. New labels are added to the table, if the mechanism is on (no need to re-initialize the mechanism).
 
Standard_Boolean IsAccessByEntries () const
 Returns a status of mechanism for fast access to the labels via entries.
 
Standard_Boolean GetLabel (const TCollection_AsciiString &anEntry, TDF_Label &aLabel)
 Returns a label by an entry. Returns Standard_False, if such a label doesn't exist or mechanism for fast access to the label by entry is not initialized.
 
void RegisterLabel (const TDF_Label &aLabel)
 An internal method. It is used internally on creation of new labels. It adds a new label into internal table for fast access to the labels by entry.
 
const TDF_HAllocatorLabelNodeAllocator () const
 Returns TDF_HAllocator, which is an incremental allocator used by TDF_LabelNode. This allocator is used to manage TDF_LabelNode objects, but it can also be used for allocating memory to application-specific data (be careful because this allocator does not release the memory). The benefits of this allocation scheme are noticeable when dealing with large OCAF documents, due to:
 
void DumpJson (Standard_OStream &theOStream, Standard_Integer theDepth=-1) const
 Dumps the content of me into the stream.
 
- Public Member Functions inherited from Standard_Transient
 Standard_Transient ()
 Empty constructor.
 
 Standard_Transient (const Standard_Transient &)
 Copy constructor – does nothing.
 
Standard_Transientoperator= (const Standard_Transient &)
 Assignment operator, needed to avoid copying reference counter.
 
virtual ~Standard_Transient ()
 Destructor must be virtual.
 
virtual const opencascade::handle< Standard_Type > & DynamicType () const
 Returns a type descriptor about this object.
 
Standard_Boolean IsInstance (const opencascade::handle< Standard_Type > &theType) const
 Returns a true value if this is an instance of Type.
 
Standard_Boolean IsInstance (const Standard_CString theTypeName) const
 Returns a true value if this is an instance of TypeName.
 
Standard_Boolean IsKind (const opencascade::handle< Standard_Type > &theType) const
 Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism.
 
Standard_Boolean IsKind (const Standard_CString theTypeName) const
 Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism.
 
Standard_TransientThis () const
 Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero.
 
Standard_Integer GetRefCount () const noexcept
 Get the reference counter of this object.
 
void IncrementRefCounter () noexcept
 Increments the reference counter of this object.
 
Standard_Integer DecrementRefCounter () noexcept
 Decrements the reference counter of this object; returns the decremented value.
 
virtual void Delete () const
 Memory deallocator for transient classes.
 

Additional Inherited Members

- Public Types inherited from Standard_Transient
typedef void base_type
 Returns a type descriptor about this object.
 
- Static Public Member Functions inherited from Standard_Transient
static constexpr const char * get_type_name ()
 Returns a type descriptor about this object.
 
static const opencascade::handle< Standard_Type > & get_type_descriptor ()
 Returns type descriptor of Standard_Transient class.
 

Detailed Description

This class is used to manipulate a complete independent, self sufficient data structure and its services:

Access to the root label;

Opens, aborts, commits a transaction;

Generation and use of Delta, depending on the time. This class uses a special allocator (see LabelNodeAllocator() method) for more efficient allocation of objects in memory.

Constructor & Destructor Documentation

◆ TDF_Data()

TDF_Data::TDF_Data ( )

A new and empty Data structure.

◆ ~TDF_Data()

TDF_Data::~TDF_Data ( )
inline

Member Function Documentation

◆ AllowModification()

void TDF_Data::AllowModification ( const Standard_Boolean isAllowed)

Sets modification mode.

◆ Destroy()

void TDF_Data::Destroy ( )

◆ Dump()

Standard_OStream & TDF_Data::Dump ( Standard_OStream & anOS) const

Dumps the Data on <aStream>.

◆ DumpJson()

void TDF_Data::DumpJson ( Standard_OStream & theOStream,
Standard_Integer theDepth = -1 ) const

Dumps the content of me into the stream.

◆ GetLabel()

Standard_Boolean TDF_Data::GetLabel ( const TCollection_AsciiString & anEntry,
TDF_Label & aLabel )
inline

Returns a label by an entry. Returns Standard_False, if such a label doesn't exist or mechanism for fast access to the label by entry is not initialized.

◆ IsAccessByEntries()

Standard_Boolean TDF_Data::IsAccessByEntries ( ) const
inline

Returns a status of mechanism for fast access to the labels via entries.

◆ IsApplicable()

Standard_Boolean TDF_Data::IsApplicable ( const Handle< TDF_Delta > & aDelta) const

Returns true if <aDelta> is applicable HERE and NOW.

◆ IsModificationAllowed()

Standard_Boolean TDF_Data::IsModificationAllowed ( ) const

returns modification mode.

◆ LabelNodeAllocator()

const TDF_HAllocator & TDF_Data::LabelNodeAllocator ( ) const

Returns TDF_HAllocator, which is an incremental allocator used by TDF_LabelNode. This allocator is used to manage TDF_LabelNode objects, but it can also be used for allocating memory to application-specific data (be careful because this allocator does not release the memory). The benefits of this allocation scheme are noticeable when dealing with large OCAF documents, due to:

  1. Very quick allocation of objects (memory heap is not used, the algorithm that replaces it is very simple).
  2. Very quick destruction of objects (memory is released not by destructors of TDF_LabelNode, but rather by the destructor of TDF_Data).
  3. TDF_LabelNode objects do not fragmentize the memory; they are kept compactly in a number of arrays of 16K each.
  4. Swapping is reduced on large data, because each document now occupies a smaller number of memory pages.

◆ NotUndoMode()

Standard_Boolean TDF_Data::NotUndoMode ( ) const

Returns the undo mode status.

◆ operator<<()

Standard_OStream & TDF_Data::operator<< ( Standard_OStream & anOS) const
inline

◆ RegisterLabel()

void TDF_Data::RegisterLabel ( const TDF_Label & aLabel)

An internal method. It is used internally on creation of new labels. It adds a new label into internal table for fast access to the labels by entry.

◆ Root()

const TDF_Label TDF_Data::Root ( ) const

Returns the root label of the Data structure.

◆ SetAccessByEntries()

void TDF_Data::SetAccessByEntries ( const Standard_Boolean aSet)

Initializes a mechanism for fast access to the labels by their entries. The fast access is useful for large documents and often access to the labels via entries. Internally, a table of entry - label is created, which allows to obtain a label by its entry in a very fast way. If the mechanism is turned off, the internal table is cleaned. New labels are added to the table, if the mechanism is on (no need to re-initialize the mechanism).

◆ Time()

Standard_Integer TDF_Data::Time ( ) const

Returns the current tick. It is incremented each Commit.

◆ Transaction()

Standard_Integer TDF_Data::Transaction ( ) const

Returns the current transaction number.

◆ Undo()

Handle< TDF_Delta > TDF_Data::Undo ( const Handle< TDF_Delta > & aDelta,
const Standard_Boolean withDelta = Standard_False )

Apply <aDelta> to undo a set of attribute modifications.

Optional <withDelta> set to True indicates a Delta Set must be generated. (See above)


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