|
||||
File indexing completed on 2025-01-18 10:05:29
0001 // Created on: 1992-02-07 0002 // Created by: Christian CAILLET 0003 // Copyright (c) 1992-1999 Matra Datavision 0004 // Copyright (c) 1999-2014 OPEN CASCADE SAS 0005 // 0006 // This file is part of Open CASCADE Technology software library. 0007 // 0008 // This library is free software; you can redistribute it and/or modify it under 0009 // the terms of the GNU Lesser General Public License version 2.1 as published 0010 // by the Free Software Foundation, with special exception defined in the file 0011 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT 0012 // distribution for complete text of the license and disclaimer of any warranty. 0013 // 0014 // Alternatively, this file may be used under the terms of Open CASCADE 0015 // commercial license or contractual agreement. 0016 0017 #ifndef _Transfer_TransferDispatch_HeaderFile 0018 #define _Transfer_TransferDispatch_HeaderFile 0019 0020 #include <Standard.hxx> 0021 #include <Standard_DefineAlloc.hxx> 0022 #include <Standard_Handle.hxx> 0023 0024 #include <Interface_CopyTool.hxx> 0025 class Interface_InterfaceModel; 0026 class Interface_GeneralLib; 0027 class Interface_Protocol; 0028 class Transfer_TransientProcess; 0029 class Standard_Transient; 0030 0031 0032 //! A TransferDispatch is aimed to dispatch Entities between two 0033 //! Interface Models, by default by copying them, as CopyTool, but 0034 //! with more capabilities of adapting : Copy is redefined to 0035 //! firstly pass the hand to a TransferProcess. If this gives no 0036 //! result, standard Copy is called. 0037 //! 0038 //! This allow, for instance, to modify the copied Entity (such as 0039 //! changing a Name for a VDA Entity), or to do a deeper work 0040 //! (such as Substituting a kind of Entity to another one). 0041 //! 0042 //! For these reasons, TransferDispatch is basically a CopyTool, 0043 //! but uses a more sophiscated control, which is TransferProcess, 0044 //! and its method Copy is redefined 0045 class Transfer_TransferDispatch : public Interface_CopyTool 0046 { 0047 public: 0048 0049 DEFINE_STANDARD_ALLOC 0050 0051 0052 //! Creates a TransferDispatch from a Model. Works with a General 0053 //! Service Library, given as an Argument 0054 //! A TransferDispatch is created as a CopyTool in which the 0055 //! Control is set to TransientProcess 0056 Standard_EXPORT Transfer_TransferDispatch(const Handle(Interface_InterfaceModel)& amodel, const Interface_GeneralLib& lib); 0057 0058 //! Same as above, but Library is defined through a Protocol 0059 Standard_EXPORT Transfer_TransferDispatch(const Handle(Interface_InterfaceModel)& amodel, const Handle(Interface_Protocol)& protocol); 0060 0061 //! Same as above, but works with the Active Protocol 0062 Standard_EXPORT Transfer_TransferDispatch(const Handle(Interface_InterfaceModel)& amodel); 0063 0064 //! Returns the content of Control Object, as a TransientProcess 0065 Standard_EXPORT Handle(Transfer_TransientProcess) TransientProcess() const; 0066 0067 //! Copies an Entity by calling the method Transferring from the 0068 //! TransferProcess. If this called produces a Null Binder, then 0069 //! the standard, inherited Copy is called 0070 Standard_EXPORT virtual Standard_Boolean Copy (const Handle(Standard_Transient)& entfrom, Handle(Standard_Transient)& entto, const Standard_Boolean mapped, const Standard_Boolean errstat) Standard_OVERRIDE; 0071 0072 0073 0074 0075 protected: 0076 0077 0078 0079 0080 0081 private: 0082 0083 0084 0085 0086 0087 }; 0088 0089 0090 0091 0092 0093 0094 0095 #endif // _Transfer_TransferDispatch_HeaderFile
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |