OpenCascade.js
API ReferenceApplicationFrameworkTKLCAF

TDF

OCCT package TDF: TDF, TDF_Attribute, TDF_AttributeDelta, TDF_AttributeIterator, and 24 more bound classes.

TDF

This package provides data framework for binding features and data structures.
The feature structure is a tree used to bind semantic information about each feature together.
The only one concrete attribute defined in this package is the TagSource attribute.This attribute is used for random creation of child labels under a given label. Tags are randomly delivered.

Constructors(1)

Static methods(5)

TDF_Attribute

A class each application has to implement. It is used to contain the application data. This abstract class, alongwith Label, is one of the cornerstones of Model Editor. The groundwork is to define the root of information. This information is to be attached to a Label, and could be of any of the following types:

  • a feature
  • a constraint
  • a comment
    Contents:
    Each software component who'd like to attach its own information to a label has to inherit from this class and has to add its own information as fields of this new class.
    Identification:
    An attribute can be identified by its ID. Every attributes used with the same meaning (for example: Integer, String, Topology...) have the same worldwide unique ID.
    Addition:
    An attribute can be added to a label only if there is no attribute yet with the same ID. Call-back methods are offered, called automatically before and after the addition action.
    Removal:
    An attribute can be removed from a label only if there is an attribute yet with the same ID. Call-back methods are offered, called automatically before and after the removal action. A removed attribute cannot be found again. After a removal, only an addition of an attribute with the sane ID is possible (no backup...).
    Modification & Transaction:
    An attribute can be backuped before a modification. Only one backup attribute by transaction is possible. The modification can be forgotten (abort transaction) or validated (commit transaction).
    BackupCopy and restore are methods used by the backup or abort transaction actions. BackupCopy is called by Backup to generate an attribute with the same contents as the current one. Restore is called when aborting a transaction to transfer the backuped contents into the current attribute. These methods must be implemented by end use inheriting classes.
    A standard implementation of BackupCopy is provided, but it is not necessary a good one for any use.
    Copy use methods:
    Paste and NewEmpty methods are used by the copy algorithms. The goal of "Paste" is to transfer an attribute new contents into another attribute. The goal of "NewEmpty" is to create an attribute without contents, to be further filled with the new contents of another one. These 2 methods must be implemented by end use inheriting classes.
    AttributeDelta:
    An AttributeDelta is the difference between to attribute values states. These methods must be implemented by end use inheriting classes, to profit from the delta services.

Static methods(2)

Instance methods(37)

  • Returns the ID of the attribute.

  • SetID(argNo0: Standard_GUID): void

    Sets specific ID of the attribute (supports several attributes of one type at the same label feature).

    Parameters (1)
    • argNo0
  • SetID(): void

    Sets default ID defined in nested class (to be used for attributes having User ID feature).

  • Returns the label to which the attribute is attached. If the label is not included in a DF, the label is null. See Label. Warning: If the label is not included in a data framework, it is null. This function should not be redefined inline.

  • Transaction(): number

    Returns the transaction index in which the attribute has been created or modified.

  • Returns the upper transaction index until which the attribute is/was valid. This number may vary. A removed attribute validity range is reduced to its transaction index.

  • IsValid(): boolean

    Returns true if the attribute is valid; i.e. not a backuped or removed one.

  • IsNew(): boolean

    Returns true if the attribute has no backup.

  • IsForgotten(): boolean

    Returns true if the attribute forgotten status is set.
    ShortCut Methods concerning associated attributes

  • IsAttribute(anID: Standard_GUID): boolean

    Returns true if it exists an associated attribute of <me> with <anID> as ID.

    Parameters (1)
    • anID
  • FindAttribute(anID: Standard_GUID): { returnValue: boolean; anAttribute: TDF_Attribute; [Symbol.dispose](): void }

    Finds an associated attribute of <me>, according to <anID>. the returned <anAttribute> is a valid one. The method returns True if found, False otherwise. A removed attribute cannot be found using this method.

    Parameters (1)
    • anID
    Returns

    A result object with fields:

    • returnValue: the C++ return value
    • anAttribute: owned by the returned envelope.
      Dispose the returned envelope to release owned Handle fields.
  • Adds an Attribute <other> to the label of <me>. Raises if there is already one of the same GUID than <other>.

    Parameters (1)
    • other
  • Forgets the Attribute of GUID <aguid> associated to the label of <me>. Be careful that if <me> is the attribute of <guid>, <me> will have a null label after this call. If the attribute doesn't exist returns False. Otherwise returns True.

    Parameters (1)
    • aguid
  • ForgetAllAttributes(clearChildren?: boolean): void

    Forgets all the attributes attached to the label of <me>. Does it on the sub-labels if <clearChildren> is set to true. Of course, this method is compatible with Transaction & Delta mechanisms. Be careful that if <me> will have a null label after this call.

    Parameters (1)
    • clearChildren
  • Something to do after adding an Attribute to a label.

  • Something to do before removing an Attribute from a label.

  • BeforeForget(): void

    Something to do before forgetting an Attribute to a label.

  • AfterResume(): void

    Something to do after resuming an Attribute from a label.

  • AfterRetrieval(forceIt?: boolean): boolean

    Something to do AFTER creation of an attribute by persistent-transient translation. The returned status says if AfterUndo has been performed (true) or if this callback must be called once again further (false). If <forceIt> is set to true, the method MUST perform and return true. Does nothing by default and returns true.

    Parameters (1)
    • forceIt
  • BeforeUndo(anAttDelta: TDF_AttributeDelta, forceIt?: boolean): boolean

    Something to do before applying <anAttDelta>. The returned status says if AfterUndo has been performed (true) or if this callback must be called once again further (false). If <forceIt> is set to true, the method MUST perform and return true. Does nothing by default and returns true.

    Parameters (2)
    • anAttDelta
    • forceIt
  • AfterUndo(anAttDelta: TDF_AttributeDelta, forceIt?: boolean): boolean

    Something to do after applying <anAttDelta>. The returned status says if AfterUndo has been performed (true) or if this callback must be called once again further (false). If <forceIt> is set to true, the method MUST perform and return true. Does nothing by default and returns true.

    Parameters (2)
    • anAttDelta
    • forceIt
  • A callback. By default does nothing. It is called by TDF_Data::CommitTransaction() method.

  • Backup(): void

    Backups the attribute. The backuped attribute is flagged "Backuped" and not "Valid".
    The method does nothing:

    1. If the attribute transaction number is equal to the current transaction number (the attribute has already been backuped).
    2. If the attribute is not attached to a label.
  • IsBackuped(): boolean

    Returns true if the attribute backup status is set. This status is set/unset by the Backup() method.

  • Copies the attribute contents into a new other attribute. It is used by Backup().

  • Restore(anAttribute: TDF_Attribute): void

    Restores the backuped contents from <anAttribute> into this one. It is used when aborting a transaction.

    Parameters (1)
    • anAttribute
  • Makes an AttributeDelta because <me> appeared. The only known use of a redefinition of this method is to return a null handle (no delta).

  • Makes an AttributeDelta because <me> has been forgotten.

  • Makes an AttributeDelta because <me> has been resumed.

  • Makes a DeltaOnModification between <me> and.

    Parameters (1)
    • anOldAttribute
  • Applies a DeltaOnModification to <me>.

    Parameters (1)
    • aDelta
  • Makes a DeltaOnRemoval on <me> because <me> has disappeared from the DS.

  • Returns an new empty attribute from the good end type. It is used by the copy algorithm.

  • Paste(intoAttribute: TDF_Attribute, aRelocationTable: TDF_RelocationTable): void

    This method is different from the "Copy" one, because it is used when copying an attribute from a source structure into a target structure. This method may paste the contents of <me> into <intoAttribute>.
    The given pasted attribute can be full or empty of its contents. But don't make a NEW! Just set the contents!
    It is possible to use <aRelocationTable> to get/set the relocation value of a source attribute.

    Parameters (2)
    • intoAttribute
    • aRelocationTable
  • References(aDataSet: TDF_DataSet): void

    Adds the first level referenced attributes and labels to <aDataSet>.
    For this, use the AddLabel or AddAttribute of DataSet.
    If there is none, do not implement the method.

    Parameters (1)
    • aDataSet
  • Forget(aTransaction: number): void

    Forgets the attribute. <aTransaction> is the current transaction in which the forget is done. A forgotten attribute is also flagged not "Valid".
    A forgotten attribute is invisible. Set also the "Valid" status to False. Obviously, DF cannot empty an attribute (this has a semantic signification), but can remove it from the structure. So, a forgotten attribute is NOT an empty one, but a soon DEAD one.
    Should be private.

    Parameters (1)
    • aTransaction

TDF_AttributeDelta

This class describes the services we need to implement Delta and Undo/Redo services.
AttributeDeltas are applied in an unpredictable order. But by the redefinition of the method IsNowApplicable, a condition can be verified before application. If the AttributeDelta is not yet applicable, it is put at the end of the AttributeDelta list, to be treated later. If a dead lock if found on the list, the AttributeDeltas are forced to be applied in an unpredictable order.

Static methods(2)

Instance methods(5)

TDF_ChildIDIterator

Iterates on the children of a label, to find attributes having ID as Attribute ID.
Level option works as TDF_ChildIterator.

Constructors(2)

Instance methods(5)

  • Initialize(aLabel: TDF_Label, anID: Standard_GUID, allLevels?: boolean): void

    Initializes the iteration on the children of the given label. If <allLevels> option is set to true, it explores not only the first, but all the sub label levels.

    Parameters (3)
    • aLabel
    • anID
    • allLevels
  • More(): boolean

    Returns True if there is a current Item in the iteration.

  • Next(): void

    Move to the next Item.

  • NextBrother(): void

    Move to the next Brother. If there is none, go up etc. This method is interesting only with "allLevels" behavior, because it avoids to explore the current label children.

  • Returns the current item; a null handle if there is none.

TDF_ChildIterator

Iterates on the children of a label, at the first level only. It is possible to ask the iterator to explore all the sub label levels of the given one, with the option "allLevels".

Constructors(2)

  • Creates an empty iterator object to explore the children of a label.

  • constructor(aLabel: TDF_Label, allLevels?: boolean): TDF_ChildIterator

    Constructs the iterator object defined by the label aLabel. Iterates on the children of the given label. If <allLevels> option is set to true, it explores not only the first, but all the sub label levels.

    Parameters (2)
    • aLabel
    • allLevels

Instance methods(5)

  • Initialize(aLabel: TDF_Label, allLevels?: boolean): void

    Initializes the iteration on the children of the given label. If <allLevels> option is set to true, it explores not only the first, but all the sub label levels. If allLevels is false, only the first level of child labels is explored. In the example below, the label is iterated using Initialize, More and Next and its child labels dumped using TDF_Tool::Entry.
    Example void DumpChildren(const TDF_Label& aLabel) { TDF_ChildIterator it; TCollection_AsciiString es; for (it.Initialize(aLabel,true); it.More(); it.Next()){ TDF_Tool::Entry(it.Value(),es); std::cout << as.ToCString() << std::endl; } }.

    Parameters (2)
    • aLabel
    • allLevels
  • More(): boolean

    Returns true if a current label is found in the iteration process.

  • Next(): void

    Move the current iteration to the next Item.

  • NextBrother(): void

    Moves this iteration to the next brother label. A brother label is one with the same father as an initial label. Use this function when the non-empty constructor or Initialize has allLevels set to true. The result is that the iteration does not explore the children of the current label. This method is interesting only with "allLevels" behavior, because it avoids to explore the current label children.

  • Returns the current label; or, if there is none, a null label.

TDF_ClosureMode

This class provides options closure management.

Constructors(1)

Instance methods(4)

  • Descendants(aStatus: boolean): void

    Sets the mode "Descendants" to <aStatus>.
    "Descendants" mode means we add to the data set the children labels of each USER GIVEN label. We do not do that with the labels found applying UpToFirstLevel option.

    Parameters (1)
    • aStatus
  • Descendants(): boolean

    Returns true if the mode "Descendants" is set.

  • References(aStatus: boolean): void

    Sets the mode "References" to <aStatus>.
    "References" mode means we add to the data set the descendants of an attribute, by calling the attribute method Descendants().

    Parameters (1)
    • aStatus
  • References(): boolean

    Returns true if the mode "References" is set.

TDF_ClosureTool

This class provides services to build the closure of an information set. This class gives services around the transitive enclosure of a set of information, starting from a list of label. You can set closure options by using IDFilter (to select or exclude specific attribute IDs) and CopyOption objects and by giving to Closure method.

Constructors(1)

Static methods(3)

  • Closure(aDataSet: TDF_DataSet): void

    Builds the transitive closure of label and attribute sets into <aDataSet>.

    Parameters (1)
    • aDataSet
  • Closure(aDataSet: TDF_DataSet, aFilter: TDF_IDFilter, aMode: TDF_ClosureMode): void

    Builds the transitive closure of label and attribute sets into <aDataSet>. Uses <aFilter> to determine if an attribute has to be taken in account or not. Uses <aMode> for various way of closing.

    Parameters (3)
    • aDataSet
    • aFilter
    • aMode
  • Builds the transitive closure of <aLabel>.

    Parameters (5)
    • aLabel
    • aLabMap
      Mutated in place; read the updated value from this argument after the call.
    • anAttMap
      Mutated in place; read the updated value from this argument after the call.
    • aFilter
    • aMode

TDF_ComparisonTool

This class provides services to compare sets of information. The use of this tool can works after a copy, acted by a CopyTool.

  • Compare(...) compares two DataSet and returns the result.
  • SourceUnbound(...) builds the difference between a relocation dictionary and a source set of information.
  • TargetUnbound(...) does the same between a relocation dictionary and a target set of information.
  • Cut(aDataSet, anLabel) removes a set of attributes.
  • IsSelfContained(...) returns true if all the labels of the attributes of the given DataSet are descendant of the given label.

Constructors(1)

Static methods(5)

  • Compare(aSourceDataSet: TDF_DataSet, aTargetDataSet: TDF_DataSet, aFilter: TDF_IDFilter, aRelocationTable: TDF_RelocationTable): void

    Compares <aSourceDataSet> with <aTargetDataSet>, updating <aRelocationTable> with labels and attributes found in both sets.

    Parameters (4)
    • aSourceDataSet
    • aTargetDataSet
    • aFilter
    • aRelocationTable
  • SourceUnbound(aRefDataSet: TDF_DataSet, aRelocationTable: TDF_RelocationTable, aFilter: TDF_IDFilter, aDiffDataSet: TDF_DataSet, anOption?: number): boolean

    Finds from <aRefDataSet> all the keys not bound into <aRelocationTable> and put them into <aDiffDataSet>. Returns True if the difference contains at least one key. (A key is a source object).
    <anOption> may take the following values: 1 : labels treatment only; 2 : attributes treatment only (default value); 3 : both labels & attributes treatment.

    Parameters (5)
    • aRefDataSet
    • aRelocationTable
    • aFilter
    • aDiffDataSet
    • anOption
  • TargetUnbound(aRefDataSet: TDF_DataSet, aRelocationTable: TDF_RelocationTable, aFilter: TDF_IDFilter, aDiffDataSet: TDF_DataSet, anOption?: number): boolean

    Subtracts from <aRefDataSet> all the items bound into <aRelocationTable>. The result is put into <aDiffDataSet>. Returns True if the difference contains at least one item. (An item is a target object).
    <anOption> may take the following values: 1 : labels treatment only; 2 : attributes treatment only (default value); 3 : both labels & attributes treatment.

    Parameters (5)
    • aRefDataSet
    • aRelocationTable
    • aFilter
    • aDiffDataSet
    • anOption
  • Cut(aDataSet: TDF_DataSet): void

    Removes attributes from <aDataSet>.

    Parameters (1)
    • aDataSet
  • IsSelfContained(aLabel: TDF_Label, aDataSet: TDF_DataSet): boolean

    Returns true if all the labels of <aDataSet> are descendant of <aLabel>.

    Parameters (2)
    • aLabel
    • aDataSet

TDF_CopyLabel

This class gives copy of source label hierarchy.

Constructors(2)

Static methods(2)

Instance methods(5)

TDF_CopyTool

This class provides services to build, copy or paste a set of information.
Copy methods:

  • Copy(aSourceDataSet, aTargetLabel, aRelocationTable) copies a source DataSet under its target place (see below: IMPORTANT NOTICE 1).
  • Copy(aSourceDataSet, anTargetLabel, aRelocationTable, aFilter) does the same job as the previous method. But <aFilter> gives a list of IDs for which a target attribute prevails over a source one. In this special case, the source attribute will be copied only if there will be no target attribute.
    IMPORTANT NOTICE : Label pre-binding
    For it is possible to copy root labels in another place in the same Data or in a different one with other tags, it is necessary to inform the Copy algorithm about the target place. To do so:
  • first get or create new target root labels;
  • then bind them with the source root labels using the relocation table method: SetRelocation(aSourceLabel, aTargetLabel);
  • finally call Copy(...) with the relocation table previously set. In this way, this method will take these relocations in account.

Constructors(1)

Static methods(3)

  • Copy(aSourceDataSet: TDF_DataSet, aRelocationTable: TDF_RelocationTable): void

    Copy <aSourceDataSet> with using and updating <aRelocationTable>. This method ignores target attributes privilege over source ones.

    Parameters (2)
    • aSourceDataSet
    • aRelocationTable
  • Copy(aSourceDataSet: TDF_DataSet, aRelocationTable: TDF_RelocationTable, aPrivilegeFilter: TDF_IDFilter): void

    Copy <aSourceDataSet> using and updating <aRelocationTable>. Use <aPrivilegeFilter> to give a list of IDs for which the target attribute prevails over the source one.

    Parameters (3)
    • aSourceDataSet
    • aRelocationTable
    • aPrivilegeFilter
  • Copy(aSourceDataSet: TDF_DataSet, aRelocationTable: TDF_RelocationTable, aPrivilegeFilter: TDF_IDFilter, aRefFilter: TDF_IDFilter, setSelfContained: boolean): void

    Copy <aSourceDataSet> using and updating <aRelocationTable>. Use <aPrivilegeFilter> to give a list of IDs for which the target attribute prevails over the source one. If <setSelfContained> is set to true, every TDF_Reference will be replaced by the referenced structure according to <aRefFilter>.
    NB: <aRefFilter> is used only if <setSelfContained> is true. Internal root label copy recursive method.

    Parameters (5)
    • aSourceDataSet
    • aRelocationTable
    • aPrivilegeFilter
    • aRefFilter
    • setSelfContained

TDF_Data

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.

Constructors(1)

Static methods(2)

Instance methods(15)

  • Returns the root label of the Data structure.

  • Transaction(): number

    Returns the current transaction number.

  • Time(): number

    Returns the current tick. It is incremented each Commit.

  • IsApplicable(aDelta: TDF_Delta): boolean

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

    Parameters (1)
    • aDelta
  • Undo(aDelta: TDF_Delta, withDelta?: boolean): TDF_Delta

    Apply <aDelta> to undo a set of attribute modifications.
    Optional <withDelta> set to True indicates a Delta Set must be generated. (See above)

    Parameters (2)
    • aDelta
    • withDelta
  • Destroy(): void
  • NotUndoMode(): boolean

    Returns the undo mode status.

  • AllowModification(isAllowed: boolean): void

    Sets modification mode.

    Parameters (1)
    • isAllowed
  • returns modification mode.

  • SetAccessByEntries(aSet: boolean): void

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

    Parameters (1)
    • aSet
  • Returns a status of mechanism for fast access to the labels via entries.

  • GetLabel(anEntry: TCollection_AsciiString, aLabel: TDF_Label): boolean

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

    Parameters (2)
    • anEntry
    • aLabel
      Mutated in place; read the updated value from this argument after the call.
  • RegisterLabel(aLabel: TDF_Label): void

    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.

    Parameters (1)
    • aLabel
  • LabelNodeAllocator(): TDF_HAllocator

    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.

TDF_DataSet

This class is a set of TDF information like labels and attributes.

Constructors(1)

Static methods(2)

Instance methods(11)

TDF_DefaultDeltaOnModification

This class provides a default implementation of a TDF_DeltaOnModification.

Constructors(1)

Static methods(2)

Instance methods(2)

TDF_Delta

A set of AttributeDelta for a given transaction number and reference time number. A delta set is available at <aSourceTime>. If applied, it restores the TDF_Data in the state it was at <aTargetTime>.

Constructors(1)

Static methods(2)

Instance methods(9)

TDF_IDFilter

This class offers filtering services around an ID list.

Constructors(1)

  • constructor(ignoreMode?: boolean): TDF_IDFilter

    Creates an ID/attribute filter based on an ID list. The default mode is "ignore all but...".
    This filter has 2 working mode: keep and ignore.
    Ignore/Exclusive mode: all IDs are ignored except these set to be kept, using Keep(). Of course, it is possible set an kept ID to be ignored using Ignore().
    Keep/Inclusive mode: all IDs are kept except these set to be ignored, using Ignore(). Of course, it is possible set an ignored ID to be kept using Keep().

    Parameters (1)
    • ignoreMode

Instance methods(13)

  • IgnoreAll(ignore: boolean): void

    The list of ID is cleared and the filter mode is set to ignore mode if <keep> is true; false otherwise.

    Parameters (1)
    • ignore
  • IgnoreAll(): boolean

    Returns true is the mode is set to "ignore all but...".

  • Keep(anID: Standard_GUID): void

    An attribute with <anID> as ID is to be kept and the filter will answer true to the question IsKept(<anID>).

    Parameters (1)
    • anID
  • Attributes with ID owned by <anIDList> are to be kept and the filter will answer true to the question IsKept(<anID>) with ID from <anIDList>.

    Parameters (1)
    • anIDList
  • Ignore(anID: Standard_GUID): void

    An attribute with <anID> as ID is to be ignored and the filter will answer false to the question IsKept(<anID>).

    Parameters (1)
    • anID
  • Attributes with ID owned by <anIDList> are to be ignored and the filter will answer false to the question IsKept(<anID>) with ID from <anIDList>.

    Parameters (1)
    • anIDList
  • IsKept(anID: Standard_GUID): boolean

    Returns true if the ID is to be kept.

    Parameters (1)
    • anID
  • IsKept(anAtt: TDF_Attribute): boolean

    Returns true if the attribute is to be kept.

    Parameters (1)
    • anAtt
  • IsIgnored(anID: Standard_GUID): boolean

    Returns true if the ID is to be ignored.

    Parameters (1)
    • anID
  • IsIgnored(anAtt: TDF_Attribute): boolean

    Returns true if the attribute is to be ignored.

    Parameters (1)
    • anAtt
  • Copies the list of ID to be kept or ignored in <anIDList>. <anIDList> is cleared before use.

    Parameters (1)
    • anIDList
      Mutated in place; read the updated value from this argument after the call.
  • Copy(fromFilter: TDF_IDFilter): void

    Copies into <me> the contents of <fromFilter>. <me> is cleared before copy.

    Parameters (1)
    • fromFilter
  • Assign(theFilter: TDF_IDFilter): void

    Assignment.

    Parameters (1)
    • theFilter

TDF_Label

This class provides basic operations to define a label in a data structure. A label is a feature in the feature hierarchy. A label is always connected to a Data from TDF. To a label is attached attributes containing the software components information.
Label information:
It is possible to know the tag, the father, the depth in the tree of the label, if the label is root, null or equal to another label.
Comfort methods: Some methods useful on a label.
Attributes:
It is possible to get an attribute in accordance to an ID, or the yougest previous version of a current attribute.

Constructors(1)

Instance methods(31)

  • Returns the Data owning <me>.

  • Tag(): number

    Returns the tag of the label. This is the integer assigned randomly to a label in a data framework. This integer is used to identify this label in an entry.

  • Returns the label father. This label may be null if the label is root.

  • IsNull(): boolean

    Returns True if the <aLabel> is null, i.e. it has not been included in the data framework.

  • Imported(aStatus: boolean): void

    Sets or unsets <me> and all its descendants as imported label, according to <aStatus>.

    Parameters (1)
    • aStatus
  • IsImported(): boolean

    Returns True if the <aLabel> is imported.

  • IsEqual(aLabel: TDF_Label): boolean

    Returns True if the <aLabel> is equal to me (same LabelNode*).

    Parameters (1)
    • aLabel
  • IsDifferent(aLabel: TDF_Label): boolean
    Parameters (1)
    • aLabel
  • IsRoot(): boolean
  • IsAttribute(anID: Standard_GUID): boolean

    Returns true if <me> owns an attribute with <anID> as ID.

    Parameters (1)
    • anID
  • AddAttribute(anAttribute: TDF_Attribute, append?: boolean): void

    Adds an Attribute to the current label. Raises if there is already one.

    Parameters (2)
    • anAttribute
    • append
  • ForgetAttribute(anAttribute: TDF_Attribute): void

    Forgets an Attribute from the current label, setting its forgotten status true and its valid status false. Raises if the attribute is not in the structure.

    Parameters (1)
    • anAttribute
  • Forgets the Attribute of GUID <aguid> from the current label. If the attribute doesn't exist returns False. Otherwise returns True.

    Parameters (1)
    • aguid
  • ForgetAllAttributes(clearChildren?: boolean): void

    Forgets all the attributes. Does it on also on the sub-labels if <clearChildren> is set to true. Of course, this method is compatible with Transaction & Delta mechanisms.

    Parameters (1)
    • clearChildren
  • ResumeAttribute(anAttribute: TDF_Attribute): void

    Undo Forget action, setting its forgotten status false and its valid status true. Raises if the attribute is not in the structure.

    Parameters (1)
    • anAttribute
  • FindAttribute(anID: Standard_GUID): { returnValue: boolean; anAttribute: TDF_Attribute; [Symbol.dispose](): void }

    Finds an attribute of the current label, according to <anID>. If anAttribute is not a valid one, false is returned.
    The method returns True if found, False otherwise.
    A removed attribute cannot be found.

    Parameters (1)
    • anID
    Returns

    A result object with fields:

    • returnValue: the C++ return value
    • anAttribute: owned by the returned envelope.
      Dispose the returned envelope to release owned Handle fields.
  • FindAttribute(anID: Standard_GUID, aTransaction: number): { returnValue: boolean; anAttribute: TDF_Attribute; [Symbol.dispose](): void }

    Finds an attribute of the current label, according to <anID> and <aTransaction>. This attribute has/had to be a valid one for the given transaction index. So, this attribute is not necessarily a valid one.
    The method returns True if found, False otherwise.
    A removed attribute cannot be found nor a backuped attribute of a removed one.

    Parameters (2)
    • anID
    • aTransaction
    Returns

    A result object with fields:

    • returnValue: the C++ return value
    • anAttribute: owned by the returned envelope.
      Dispose the returned envelope to release owned Handle fields.
  • MayBeModified(): boolean

    Returns true if <me> or a DESCENDANT of <me> owns attributes not yet available in transaction 0. It means at least one of their attributes is new, modified or deleted.

  • Returns true if <me> owns attributes not yet available in transaction 0. It means at least one attribute is new, modified or deleted.

  • HasAttribute(): boolean

    Returns true if this label has at least one attribute.

  • NbAttributes(): number

    Returns the number of attributes.

  • Depth(): number

    Returns the depth of the label in the data framework. This corresponds to the number of fathers which this label has, and is used in determining whether a label is root, null or equivalent to another label. Exceptions: Standard_NullObject if this label is null. This is because a null object can have no depth.

  • IsDescendant(aLabel: TDF_Label): boolean

    Returns True if <me> is a descendant of <aLabel>. Attention: every label is its own descendant.

    Parameters (1)
    • aLabel
  • Returns the root label Root of the data structure. This has a depth of 0. Exceptions: Standard_NullObject if this label is null. This is because a null object can have no depth.

  • HasChild(): boolean

    Returns true if this label has at least one child.

  • NbChildren(): number

    Returns the number of children.

  • FindChild(aTag: number, create?: boolean): TDF_Label

    Finds a child label having <aTag> as tag. Creates The tag aTag identifies the label which will be the parent. If create is true and no child label is found, a new one is created. Example: //creating a label with tag 10 at Root TDF_Label lab1 = aDF->Root().FindChild(10); //creating labels 7 and 2 on label 10 TDF_Label lab2 = lab1.FindChild(7); TDF_Label lab3 = lab1.FindChild(2);.

    Parameters (2)
    • aTag
    • create
  • Create a new child label of me using automatic delivery tags provided by TagSource.

  • Transaction(): number

    Returns the current transaction index.

  • HasLowerNode(otherLabel: TDF_Label): boolean

    Returns true if node address of <me> is lower than <otherLabel> one. Used to quickly sort labels (not on entry criterion).
    -C++: inline

    Parameters (1)
    • otherLabel
  • HasGreaterNode(otherLabel: TDF_Label): boolean

    Returns true if node address of <me> is greater than <otherLabel> one. Used to quickly sort labels (not on entry criterion).
    -C++: inline

    Parameters (1)
    • otherLabel

TDF_Reference

This attribute is used to store in the framework a reference to an other label.

Constructors(1)

Static methods(4)

Instance methods(8)

  • Set(Origin: TDF_Label): void
    Parameters (1)
    • Origin
  • Returns the ID of the attribute.

  • Restore(anAttribute: TDF_Attribute): void

    Restores the backuped contents from <anAttribute> into this one. It is used when aborting a transaction.

    Parameters (1)
    • anAttribute
  • Returns an new empty attribute from the good end type. It is used by the copy algorithm.

  • Paste(intoAttribute: TDF_Attribute, aRelocationTable: TDF_RelocationTable): void

    This method is different from the "Copy" one, because it is used when copying an attribute from a source structure into a target structure. This method may paste the contents of <me> into <intoAttribute>.
    The given pasted attribute can be full or empty of its contents. But don't make a NEW! Just set the contents!
    It is possible to use <aRelocationTable> to get/set the relocation value of a source attribute.

    Parameters (2)
    • intoAttribute
    • aRelocationTable
  • References(aDataSet: TDF_DataSet): void

    Adds the first level referenced attributes and labels to <aDataSet>.
    For this, use the AddLabel or AddAttribute of DataSet.
    If there is none, do not implement the method.

    Parameters (1)
    • aDataSet

TDF_RelocationTable

This is a relocation dictionary between source and target labels, attributes or any transient(useful for copy or paste actions). Note that one target value may be the relocation value of more than one source object.
Common behaviour: it returns true and the found relocation value as target object; false otherwise.
Look at SelfRelocate method for more explanation about self relocation behavior of this class.

Constructors(1)

  • constructor(selfRelocate?: boolean): TDF_RelocationTable

    Creates an relocation table. <selfRelocate> says if a value without explicit relocation is its own relocation.

    Parameters (1)
    • selfRelocate

Static methods(2)

Instance methods(17)

  • SelfRelocate(selfRelocate: boolean): void

    Sets <mySelfRelocate> to <selfRelocate>.
    This flag affects the HasRelocation method behavior like this:
    <mySelfRelocate> == False:
    If no relocation object is found in the map, a null object is returned
    <mySelfRelocate> == True:
    If no relocation object is found in the map, the method assumes the source object is relocation value; so the source object is returned as target object.

    Parameters (1)
    • selfRelocate
  • SelfRelocate(): boolean

    Returns <mySelfRelocate>.

  • AfterRelocate(afterRelocate: boolean): void
    Parameters (1)
    • afterRelocate
  • AfterRelocate(): boolean

    Returns <myAfterRelocate>.

  • SetRelocation(aSourceLabel: TDF_Label, aTargetLabel: TDF_Label): void

    Sets the relocation value of <aSourceLabel> to <aTargetLabel>.

    Parameters (2)
    • aSourceLabel
    • aTargetLabel
  • SetRelocation(aSourceAttribute: TDF_Attribute, aTargetAttribute: TDF_Attribute): void

    Sets the relocation value of <aSourceAttribute> to <aTargetAttribute>.

    Parameters (2)
    • aSourceAttribute
    • aTargetAttribute
  • HasRelocation(aSourceLabel: TDF_Label, aTargetLabel: TDF_Label): boolean

    Finds the relocation value of <aSourceLabel> and returns it into <aTargetLabel>.
    (See above SelfRelocate method for more explanation about the method behavior)

    Parameters (2)
    • aSourceLabel
    • aTargetLabel
      Mutated in place; read the updated value from this argument after the call.
  • HasRelocation(aSourceAttribute: TDF_Attribute): { returnValue: boolean; aTargetAttribute: TDF_Attribute; [Symbol.dispose](): void }

    Finds the relocation value of <aSourceLabel> and returns it into <aTargetLabel>.
    (See above SelfRelocate method for more explanation about the method behavior)

    Parameters (1)
    • aSourceAttribute
    Returns

    A result object with fields:

    • returnValue: the C++ return value
    • aTargetAttribute: owned by the returned envelope.
      Dispose the returned envelope to release owned Handle fields.
  • SetTransientRelocation(aSourceTransient: Standard_Transient, aTargetTransient: Standard_Transient): void

    Sets the relocation value of <aSourceTransient> to <aTargetTransient>.

    Parameters (2)
    • aSourceTransient
    • aTargetTransient
  • HasTransientRelocation(aSourceTransient: Standard_Transient): { returnValue: boolean; aTargetTransient: Standard_Transient; [Symbol.dispose](): void }

    Finds the relocation value of <aSourceTransient> and returns it into <aTargetTransient>.
    (See above SelfRelocate method for more explanation about the method behavior)

    Parameters (1)
    • aSourceTransient
    Returns

    A result object with fields:

    • returnValue: the C++ return value
    • aTargetTransient: owned by the returned envelope.
      Dispose the returned envelope to release owned Handle fields.
  • Clear(): void

    Clears the relocation dictionary, but lets the self relocation flag to its current value.

  • Fills <aLabelMap> with target relocation labels. <aLabelMap> is not cleared before use.

    Parameters (1)
    • aLabelMap
      Mutated in place; read the updated value from this argument after the call.
  • Fills <anAttributeMap> with target relocation attributes. <anAttributeMap> is not cleared before use.

    Parameters (1)
    • anAttributeMap
      Mutated in place; read the updated value from this argument after the call.
  • Returns <myLabelTable> to be used or updated.

  • Returns <myAttributeTable> to be used or updated.

  • Returns <myTransientTable> to be used or updated.

TDF_TagSource

This attribute manage a tag provider to create child labels of a given one.

Constructors(1)

Static methods(5)

Instance methods(9)

  • Set(T: number): void

    TDF_Attribute methods

    Parameters (1)
    • T
  • NewTag(): number
  • Get(): number
  • Returns the ID of the attribute.

  • Restore(anAttribute: TDF_Attribute): void

    Restores the backuped contents from <anAttribute> into this one. It is used when aborting a transaction.

    Parameters (1)
    • anAttribute
  • Returns an new empty attribute from the good end type. It is used by the copy algorithm.

  • Paste(intoAttribute: TDF_Attribute, aRelocationTable: TDF_RelocationTable): void

    This method is different from the "Copy" one, because it is used when copying an attribute from a source structure into a target structure. This method may paste the contents of <me> into <intoAttribute>.
    The given pasted attribute can be full or empty of its contents. But don't make a NEW! Just set the contents!
    It is possible to use <aRelocationTable> to get/set the relocation value of a source attribute.

    Parameters (2)
    • intoAttribute
    • aRelocationTable

TDF_Tool

This class provides general services for a data framework.

Constructors(1)

Static methods(18)

  • NbLabels(aLabel: TDF_Label): number

    Returns the number of labels of the tree, including <aLabel>. aLabel is also included in this figure. This information is useful in setting the size of an array.

    Parameters (1)
    • aLabel
  • NbAttributes(aLabel: TDF_Label): number

    Returns the total number of attributes attached to the labels dependent on the label aLabel. The attributes of aLabel are also included in this figure. This information is useful in setting the size of an array.

    Parameters (1)
    • aLabel
  • NbAttributes(aLabel: TDF_Label, aFilter: TDF_IDFilter): number

    Returns the number of attributes of the tree, selected by a<Filter>, including those of <aLabel>.

    Parameters (2)
    • aLabel
    • aFilter
  • IsSelfContained(aLabel: TDF_Label): boolean

    Returns true if <aLabel> and its descendants reference only attributes or labels attached to themselves.

    Parameters (1)
    • aLabel
  • IsSelfContained(aLabel: TDF_Label, aFilter: TDF_IDFilter): boolean

    Returns true if <aLabel> and its descendants reference only attributes or labels attached to themselves and kept by <aFilter>.

    Parameters (2)
    • aLabel
    • aFilter
  • Returns in <theAtts> the attributes having out references.
    Caution: <theAtts> is not cleared before use!

    Parameters (2)
    • theLabel
    • theAtts
      Mutated in place; read the updated value from this argument after the call.
  • OutReferers(aLabel: TDF_Label, aFilterForReferers: TDF_IDFilter, aFilterForReferences: TDF_IDFilter, atts: NCollection_Map_handle_TDF_Attribute): void

    Returns in <atts> the attributes having out references and kept by <aFilterForReferers>. It considers only the references kept by <aFilterForReferences>. Caution: <atts> is not cleared before use!

    Parameters (4)
    • aLabel
    • aFilterForReferers
    • aFilterForReferences
    • atts
      Mutated in place; read the updated value from this argument after the call.
  • Returns in <atts> the referenced attributes. Caution: <atts> is not cleared before use!

    Parameters (2)
    • aLabel
    • atts
      Mutated in place; read the updated value from this argument after the call.
  • OutReferences(aLabel: TDF_Label, aFilterForReferers: TDF_IDFilter, aFilterForReferences: TDF_IDFilter, atts: NCollection_Map_handle_TDF_Attribute): void

    Returns in <atts> the referenced attributes and kept by <aFilterForReferences>. It considers only the referrers kept by <aFilterForReferers>. Caution: <atts> is not cleared before use!

    Parameters (4)
    • aLabel
    • aFilterForReferers
    • aFilterForReferences
    • atts
      Mutated in place; read the updated value from this argument after the call.
  • RelocateLabel(aSourceLabel: TDF_Label, fromRoot: TDF_Label, toRoot: TDF_Label, aTargetLabel: TDF_Label, create: boolean): void

    Returns the label having the same sub-entry as <aLabel> but located as descendant as <toRoot> instead of <fromRoot>.
    Example :
    aLabel = 0:3:24:7:2:7 fromRoot = 0:3:24 toRoot = 0:5 returned label = 0:5:7:2:7

    Parameters (5)
    • aSourceLabel
    • fromRoot
    • toRoot
    • aTargetLabel
      Mutated in place; read the updated value from this argument after the call.
    • create
  • Entry(aLabel: TDF_Label, anEntry: TCollection_AsciiString): void

    Returns the entry for the label aLabel in the form of the ASCII character string anEntry containing the tag list for aLabel.

    Parameters (2)
    • aLabel
    • anEntry
      Mutated in place; read the updated value from this argument after the call.
  • TagList(aLabel: TDF_Label, aTagList: NCollection_List_int): void

    Returns the entry of <aLabel> as list of integers in <aTagList>.

    Parameters (2)
    • aLabel
    • aTagList
      Mutated in place; read the updated value from this argument after the call.
  • Returns the entry expressed by <anEntry> as list of integers in <aTagList>.

    Parameters (2)
    • anEntry
    • aTagList
      Mutated in place; read the updated value from this argument after the call.
  • Label(aDF: TDF_Data, anEntry: TCollection_AsciiString, aLabel: TDF_Label, create: boolean): void

    Returns the label expressed by <anEntry>; creates the label if it does not exist and if <create> is true.

    Parameters (4)
    • aDF
    • anEntry
    • aLabel
      Mutated in place; read the updated value from this argument after the call.
    • create
  • Label(aDF: TDF_Data, anEntry: string, aLabel: TDF_Label, create: boolean): void

    Returns the label expressed by <anEntry>; creates the label if it does not exist and if <create> is true.

    Parameters (4)
    • aDF
    • anEntry
    • aLabel
      Mutated in place; read the updated value from this argument after the call.
    • create
  • Label(aDF: TDF_Data, aTagList: NCollection_List_int, aLabel: TDF_Label, create: boolean): void

    Returns the label expressed by <anEntry>; creates the label if it does not exist and if <create> is true.

    Parameters (4)
    • aDF
    • aTagList
    • aLabel
      Mutated in place; read the updated value from this argument after the call.
    • create
  • Adds the labels of <aLabelList> to <aLabelMap> if they are unbound, or increases their reference counters. At the end of the process, <aLabelList> contains only the ADDED labels.

    Parameters (2)
    • aLabelList
      Mutated in place; read the updated value from this argument after the call.
    • aLabelMap
      Mutated in place; read the updated value from this argument after the call.
  • Decreases the reference counters of the labels of <aLabelList> to <aLabelMap>, and removes labels with null counter. At the end of the process, <aLabelList> contains only the SUPPRESSED labels.

    Parameters (2)
    • aLabelList
      Mutated in place; read the updated value from this argument after the call.
    • aLabelMap
      Mutated in place; read the updated value from this argument after the call.

TDF_Transaction

This class offers services to open, commit or abort a transaction in a more secure way than using Data from TDF. If you forget to close a transaction, it will be automatically aborted at the destruction of this object, at the closure of its scope.
In case of catching errors, the effect will be the same: aborting transactions until the good current one.

Constructors(2)

Instance methods(8)

  • Initialize(aDF: TDF_Data): void

    Aborts all the transactions on <myDF> and sets <aDF> to build a transaction context on <aDF>, ready to be opened.

    Parameters (1)
    • aDF
  • Open(): number

    If not yet done, opens a new transaction on <myDF>. Returns the index of the just opened transaction.
    It raises DomainError if the transaction is already open, and NullObject if there is no current Data framework.

  • Commit(withDelta?: boolean): TDF_Delta

    Commits the transactions until AND including the current opened one.

    Parameters (1)
    • withDelta
  • Abort(): void

    Aborts the transactions until AND including the current opened one.

  • Returns the Data from TDF.

  • Transaction(): number

    Returns the number of the transaction opened by <me>.

  • Returns the transaction name.

  • IsOpen(): boolean

    Returns true if the transaction is open.