Open CASCADE Technology  7.3.0
Public Member Functions

TDF_Data Class Reference

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

#include <TDF_Data.hxx>

Inheritance diagram for TDF_Data:
Inheritance graph
[legend]

Public Member Functions

 TDF_Data ()
 A new and empty Data structure. More...
 
const TDF_Label Root () const
 Returns the root label of the Data structure. More...
 
Standard_Integer Transaction () const
 Returns the current transaction number. More...
 
Standard_Integer Time () const
 Returns the current tick. It is incremented each Commit. More...
 
Standard_Boolean IsApplicable (const Handle< TDF_Delta > &aDelta) const
 Returns true if <aDelta> is applicable HERE and NOW. More...
 
Handle< TDF_DeltaUndo (const Handle< TDF_Delta > &aDelta, const Standard_Boolean withDelta=Standard_False)
 Apply <aDelta> to undo a set of attribute modifications. More...
 
void Destroy ()
 
 ~TDF_Data ()
 
Standard_Boolean NotUndoMode () const
 Returns the undo mode status. More...
 
Standard_OStreamDump (Standard_OStream &anOS) const
 Dumps the Data on <aStream>. More...
 
Standard_OStreamoperator<< (Standard_OStream &anOS) const
 
void AllowModification (const Standard_Boolean isAllowed)
 Sets modification mode. More...
 
Standard_Boolean IsModificationAllowed () const
 returns modification mode. More...
 
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: More...
 
- Public Member Functions inherited from Standard_Transient
 Standard_Transient ()
 Empty constructor. More...
 
 Standard_Transient (const Standard_Transient &)
 Copy constructor – does nothing. More...
 
Standard_Transientoperator= (const Standard_Transient &)
 Assignment operator, needed to avoid copying reference counter. More...
 
virtual ~Standard_Transient ()
 Destructor must be virtual. More...
 
virtual void Delete () const
 Memory deallocator for transient classes. More...
 
virtual const opencascade::handle< Standard_Type > & DynamicType () const
 Returns a type descriptor about this object. More...
 
Standard_Boolean IsInstance (const opencascade::handle< Standard_Type > &theType) const
 Returns a true value if this is an instance of Type. More...
 
Standard_Boolean IsInstance (const Standard_CString theTypeName) const
 Returns a true value if this is an instance of TypeName. More...
 
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. More...
 
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. More...
 
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. More...
 
Standard_Integer GetRefCount () const
 Get the reference counter of this object. More...
 
void IncrementRefCounter () const
 Increments the reference counter of this object. More...
 
Standard_Integer DecrementRefCounter () const
 Decrements the reference counter of this object; returns the decremented value. More...
 

Additional Inherited Members

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

Detailed Description

This class is used to manipulate a complete independant, 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>.

◆ 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

◆ Root()

const TDF_Label TDF_Data::Root ( ) const

Returns the root label of the Data structure.

◆ 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.

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


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