#include <TDF_Data.hxx>
Public Member Functions | |
Standard_EXPORT | TDF_Data () |
A new and empty Data structure. . | |
const TDF_Label | Root () const |
Returns the root label of the Data structure. . | |
Standard_EXPORT Standard_Integer | Transaction () const |
Returns the current transaction number. . | |
Standard_Integer | Time () const |
Returns the current tick. It is incremented each Commit. . | |
Standard_EXPORT Standard_Boolean | IsApplicable (const Handle(TDF_Delta)&aDelta) const |
Returns true if <adelta> is applicable HERE and NOW. . | |
Standard_EXPORT Handle_TDF_Delta | 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) . | |
Standard_EXPORT void | Destroy () |
~TDF_Data () | |
Standard_Boolean | NotUndoMode () const |
Returns the undo mode status. . | |
Standard_EXPORT Standard_OStream & | Dump (Standard_OStream &anOS) const |
Dumps the Data on <astream>. . | |
Standard_OStream & | operator<< (Standard_OStream &anOS) const |
void | AllowModification (const Standard_Boolean isAllowed) |
Sets modification mode. . | |
Standard_Boolean | IsModificationAllowed () const |
returns modification mode. | |
const TDF_HAllocator & | 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. . | |
Standard_EXPORT const | Handle (Standard_Type)&DynamicType() const |
Private Member Functions | |
Standard_EXPORT Standard_Integer | OpenTransaction () |
Increments the transaction number and returns it. . | |
Standard_EXPORT Handle_TDF_Delta | CommitTransaction (const Standard_Boolean withDelta=Standard_False) |
Decrements the transaction number and commits the modifications. Raises if there is no current transaction. Optionnal <withdelta> set to True indiquates a Delta must be generated. . | |
Standard_EXPORT Handle_TDF_Delta | CommitUntilTransaction (const Standard_Integer untilTransaction, const Standard_Boolean withDelta=Standard_False) |
Decrements the transaction number and commits the modifications until AND including the transaction <untiltransaction>. . | |
Standard_EXPORT void | AbortTransaction () |
Decrements the transaction number and forgets the modifications. Raises if there is no current transaction. . | |
Standard_EXPORT void | AbortUntilTransaction (const Standard_Integer untilTransaction) |
Decrements the transaction number and forgets the modifications until AND including the transaction <untiltransaction>. . | |
Standard_EXPORT Standard_Integer | CommitTransaction (const TDF_Label &aLabel, const Handle(TDF_Delta)&aDelta, const Standard_Boolean withDelta) |
Decrements the transaction number and commits the modifications. Used to implement the recursif commit process. The returned boolean says how many attributes (new, modified or deleted) has been committed from the previous transaction into the current one. . | |
Private Attributes | |
TDF_LabelNodePtr | myRoot |
Standard_Integer | myTransaction |
Standard_Integer | myNbTouchedAtt |
Standard_Boolean | myNotUndoMode |
Standard_Integer | myTime |
TColStd_StackOfInteger | myTimes |
TDF_HAllocator | myLabelNodeAllocator |
Standard_Boolean | myAllowModification |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|