|
||||
File indexing completed on 2025-01-18 10:05:29
0001 // Created on: 1992-02-04 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_TransferOutput_HeaderFile 0018 #define _Transfer_TransferOutput_HeaderFile 0019 0020 #include <Standard.hxx> 0021 #include <Standard_DefineAlloc.hxx> 0022 #include <Standard_Handle.hxx> 0023 #include <Message_ProgressRange.hxx> 0024 0025 class Transfer_TransientProcess; 0026 class Interface_InterfaceModel; 0027 class Transfer_ActorOfTransientProcess; 0028 class Standard_Transient; 0029 class Interface_Protocol; 0030 class Interface_Graph; 0031 class Interface_EntityIterator; 0032 0033 //! A TransferOutput is a Tool which manages the transfer of 0034 //! entities created by an Interface, stored in an InterfaceModel, 0035 //! into a set of Objects suitable for an Application 0036 //! Objects to be transferred are given, by method Transfer 0037 //! (which calls Transfer from TransientProcess) 0038 //! A default action is available to get all roots of the Model 0039 //! Result is given as a TransferIterator (see TransferProcess) 0040 //! Also, it is possible to pilot directly the TransientProcess 0041 class Transfer_TransferOutput 0042 { 0043 public: 0044 0045 DEFINE_STANDARD_ALLOC 0046 0047 0048 //! Creates a TransferOutput ready to use, with a TransientProcess 0049 Standard_EXPORT Transfer_TransferOutput(const Handle(Transfer_ActorOfTransientProcess)& actor, const Handle(Interface_InterfaceModel)& amodel); 0050 0051 //! Creates a TransferOutput from an already existing 0052 //! TransientProcess, and a Model 0053 //! Returns (by Reference, hence can be changed) the Mode for 0054 //! Scope Management. False (D) means Scope is ignored. 0055 //! True means that each individual Transfer (direct or through 0056 //! TransferRoots) is regarded as one Scope 0057 Standard_EXPORT Transfer_TransferOutput(const Handle(Transfer_TransientProcess)& proc, const Handle(Interface_InterfaceModel)& amodel); 0058 0059 //! Returns the Starting Model 0060 Standard_EXPORT Handle(Interface_InterfaceModel) Model() const; 0061 0062 //! Returns the TransientProcess used to work 0063 Standard_EXPORT Handle(Transfer_TransientProcess) TransientProcess() const; 0064 0065 //! Transfer checks that all taken Entities come from the same 0066 //! Model, then calls Transfer from TransientProcess 0067 Standard_EXPORT void Transfer (const Handle(Standard_Transient)& obj, 0068 const Message_ProgressRange& theProgress = Message_ProgressRange()); 0069 0070 //! Runs transfer on the roots of the Interface Model 0071 //! The Roots are computed with a ShareFlags created from a 0072 //! Protocol given as Argument 0073 Standard_EXPORT void TransferRoots (const Handle(Interface_Protocol)& protocol, 0074 const Message_ProgressRange& theProgress = Message_ProgressRange()); 0075 0076 //! Runs transfer on the roots defined by a Graph of dependences 0077 //! (which detains also a Model and its Entities) 0078 //! Roots are computed with a ShareFlags created from the Graph 0079 Standard_EXPORT void TransferRoots (const Interface_Graph& G, 0080 const Message_ProgressRange& theProgress = Message_ProgressRange()); 0081 0082 //! Runs transfer on the roots of the Interface Model 0083 //! Remark : the Roots are computed with a ShareFlags created 0084 //! from the Active Protocol 0085 Standard_EXPORT void TransferRoots(const Message_ProgressRange& theProgress = Message_ProgressRange()); 0086 0087 //! Returns the list of Starting Entities with these criteria : 0088 //! - <normal> False, gives the entities bound with ABNORMAL STATUS 0089 //! (e.g. : Fail recorded, Exception raised during Transfer) 0090 //! - <normal> True, gives Entities with or without a Result, but 0091 //! with no Fail, no Exception (Warnings are not counted) 0092 //! - <roots> False, considers all entities recorded (either for 0093 //! Result, or for at least one Fail or Warning message) 0094 //! - <roots> True (Default), considers only roots of Transfer 0095 //! (the Entities recorded at highest level) 0096 //! This method is based on AbnormalResult from TransferProcess 0097 Standard_EXPORT Interface_EntityIterator ListForStatus (const Standard_Boolean normal, const Standard_Boolean roots = Standard_True) const; 0098 0099 //! Fills a Model with the list determined by ListForStatus 0100 //! This model starts from scratch (made by NewEmptyModel from the 0101 //! current Model), then is filled by AddWithRefs 0102 //! 0103 //! Useful to get separately from a transfer, the entities which 0104 //! have caused problem, in order to furtherly analyse them (with 0105 //! normal = False), or the "good" entities, to obtain a data set 0106 //! "which works well" (with normal = True) 0107 Standard_EXPORT Handle(Interface_InterfaceModel) ModelForStatus (const Handle(Interface_Protocol)& protocol, const Standard_Boolean normal, const Standard_Boolean roots = Standard_True) const; 0108 0109 0110 0111 0112 protected: 0113 0114 0115 0116 0117 0118 private: 0119 0120 0121 0122 Handle(Transfer_TransientProcess) theproc; 0123 Handle(Interface_InterfaceModel) themodel; 0124 0125 0126 }; 0127 0128 0129 0130 0131 0132 0133 0134 #endif // _Transfer_TransferOutput_HeaderFile
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |