Open CASCADE Technology 7.8.2.dev
|
A TransferDispatch is aimed to dispatch Entities between two Interface Models, by default by copying them, as CopyTool, but with more capabilities of adapting : Copy is redefined to firstly pass the hand to a TransferProcess. If this gives no result, standard Copy is called. More...
#include <Transfer_TransferDispatch.hxx>
Public Member Functions | |
Transfer_TransferDispatch (const Handle< Interface_InterfaceModel > &amodel, const Interface_GeneralLib &lib) | |
Creates a TransferDispatch from a Model. Works with a General Service Library, given as an Argument A TransferDispatch is created as a CopyTool in which the Control is set to TransientProcess. | |
Transfer_TransferDispatch (const Handle< Interface_InterfaceModel > &amodel, const Handle< Interface_Protocol > &protocol) | |
Same as above, but Library is defined through a Protocol. | |
Transfer_TransferDispatch (const Handle< Interface_InterfaceModel > &amodel) | |
Same as above, but works with the Active Protocol. | |
Handle< Transfer_TransientProcess > | TransientProcess () const |
Returns the content of Control Object, as a TransientProcess. | |
virtual Standard_Boolean | Copy (const Handle< Standard_Transient > &entfrom, Handle< Standard_Transient > &entto, const Standard_Boolean mapped, const Standard_Boolean errstat) override |
Copies an Entity by calling the method Transferring from the TransferProcess. If this called produces a Null Binder, then the standard, inherited Copy is called. | |
Public Member Functions inherited from Interface_CopyTool | |
Interface_CopyTool (const Handle< Interface_InterfaceModel > &amodel, const Interface_GeneralLib &lib) | |
Creates a CopyTool adapted to work from a Model. Works with a General Service Library, given as an argument. | |
Interface_CopyTool (const Handle< Interface_InterfaceModel > &amodel, const Handle< Interface_Protocol > &protocol) | |
Same as above, but Library is defined through a Protocol. | |
Interface_CopyTool (const Handle< Interface_InterfaceModel > &amodel) | |
Same as above, but works with the Active Protocol. | |
Handle< Interface_InterfaceModel > | Model () const |
Returns the Model on which the CopyTool works. | |
void | SetControl (const Handle< Interface_CopyControl > &othermap) |
Changes the Map of Result for another one. This allows to work with a more sophisticated Mapping Control than the Standard one which is CopyMap (e.g. TransferProcess from Transfer) | |
Handle< Interface_CopyControl > | Control () const |
Returns the object used for Control. | |
virtual void | Clear () |
Clears Transfer List. Gets Ready to begin another Transfer. | |
Handle< Standard_Transient > | Transferred (const Handle< Standard_Transient > &ent) |
Transfers one Entity, if not yet bound to a result Remark : For an Entity which is reported in the Starting Model, the ReportEntity will also be copied with its Content if it has one (at least ShallowCopy; Complete Copy if the Protocol recognizes the Content : see method Copy) | |
void | Bind (const Handle< Standard_Transient > &ent, const Handle< Standard_Transient > &res) |
Defines a Result for the Transfer of a Starting object. Used by method Transferred (which performs a normal Copy), but can also be called to enforce a result : in the latter case, the enforced result must be compatible with the other Transfers which are performed. | |
Standard_Boolean | Search (const Handle< Standard_Transient > &ent, Handle< Standard_Transient > &res) const |
Search for the result of a Starting Object (i.e. an Entity) Returns True if a Result is Bound (and fills "result") Returns False if no result is Bound. | |
void | ClearLastFlags () |
Clears LastFlags only. This allows to know what Entities are copied after its call (see method LastCopiedAfter). It can be used when copies are done by increments, which must be distinghished. ClearLastFlags is also called by Clear. | |
Standard_Integer | LastCopiedAfter (const Standard_Integer numfrom, Handle< Standard_Transient > &ent, Handle< Standard_Transient > &res) const |
Returns an copied Entity and its Result which were operated after last call to ClearLastFlags. It returns the first "Last Copied Entity" which Number follows <numfrom>, Zero if none. It is used in a loop as follow : Integer num = 0; while ( (num = CopyTool.LastCopiedAfter(num,ent,res)) ) { .. Process Starting <ent> and its Result <res> }. | |
void | TransferEntity (const Handle< Standard_Transient > &ent) |
Transfers one Entity and records result into the Transfer List Calls method Transferred. | |
void | RenewImpliedRefs () |
Renews the Implied References. These References do not involve Copying of referenced Entities. For such a Reference, if the Entity which defines it AND the referenced Entity are both copied, then this Reference is renewed. Else it is deleted in the copied Entities. Remark : this concerns only some specific references, such as "back pointers". | |
void | FillModel (const Handle< Interface_InterfaceModel > &bmodel) |
Fills a Model with the result of the transfer (TransferList) Commands copy of Header too, and calls RenewImpliedRefs. | |
Interface_EntityIterator | CompleteResult (const Standard_Boolean withreports=Standard_False) const |
Returns the complete list of copied Entities If <withreports> is given True, the entities which were reported in the Starting Model are replaced in the list by the copied ReportEntities. | |
Interface_EntityIterator | RootResult (const Standard_Boolean withreports=Standard_False) const |
Returns the list of Root copied Entities (those which were asked for copy by the user of CopyTool, not by copying another Entity) | |
virtual | ~Interface_CopyTool () |
Additional Inherited Members | |
Protected Member Functions inherited from Interface_CopyTool | |
virtual Standard_Boolean | NewVoid (const Handle< Standard_Transient > &entfrom, Handle< Standard_Transient > &entto) |
Creates a new void instance (just created) of the same class as <entfrom>. Uses the general service GeneralModule:NewVoid Returns True if OK (Recognize has succeeded), False else (in such a case, the standard method ShallowCopy is called to produce <ento> from <entfrom> : hence it is not void) | |
Protected Attributes inherited from Interface_CopyTool | |
Interface_GeneralLib | thelib |
A TransferDispatch is aimed to dispatch Entities between two Interface Models, by default by copying them, as CopyTool, but with more capabilities of adapting : Copy is redefined to firstly pass the hand to a TransferProcess. If this gives no result, standard Copy is called.
This allow, for instance, to modify the copied Entity (such as changing a Name for a VDA Entity), or to do a deeper work (such as Substituting a kind of Entity to another one).
For these reasons, TransferDispatch is basically a CopyTool, but uses a more sophiscated control, which is TransferProcess, and its method Copy is redefined
Transfer_TransferDispatch::Transfer_TransferDispatch | ( | const Handle< Interface_InterfaceModel > & | amodel, |
const Interface_GeneralLib & | lib ) |
Creates a TransferDispatch from a Model. Works with a General Service Library, given as an Argument A TransferDispatch is created as a CopyTool in which the Control is set to TransientProcess.
Transfer_TransferDispatch::Transfer_TransferDispatch | ( | const Handle< Interface_InterfaceModel > & | amodel, |
const Handle< Interface_Protocol > & | protocol ) |
Same as above, but Library is defined through a Protocol.
Transfer_TransferDispatch::Transfer_TransferDispatch | ( | const Handle< Interface_InterfaceModel > & | amodel | ) |
Same as above, but works with the Active Protocol.
|
overridevirtual |
Copies an Entity by calling the method Transferring from the TransferProcess. If this called produces a Null Binder, then the standard, inherited Copy is called.
Reimplemented from Interface_CopyTool.
Handle< Transfer_TransientProcess > Transfer_TransferDispatch::TransientProcess | ( | ) | const |
Returns the content of Control Object, as a TransientProcess.