occt: master 7e785937
Author | Committer | Branch | Timestamp | Parent |
---|---|---|---|---|
abv | master | 2020-07-10 11:19:31 | master 99289bed | |
Affected Issues | 0025748: Foundation Classes - Parallel version of progress indicator | |||
Changeset | 0025748: Parallel version of progress indicator Progress indication mechanism is refactored to support incrementing progress within multithreaded algorithms. The class Message_ProgressIndicator is only an interface to the user application. It accumulates the progress provided by progress scopes. The counter is protected by mutex for thread-safety. The new class Message_ProgressScope replacing Message_ProgressSentry should be used to advance the progress. The scopes are nested to each other to reflect the nested nature of operations. The new class Message_ProgressRange should be used to pass the progress to sub-scopes. All OCCT algorithms involving progress indication have been updated to new API. Improvements in Draw_ProgressIndicator: - Separate console mode has been added in order to make possible to put the progress into std::cout instead or in addition to the draw interpreter, instead of trigger option "-tclOutput". - Treatment of Ctrl-Break signal has been added. Now any operation can be aborted by Ctrl-C or Ctrl-Break keystroke. Added new test case 'perf fclasses progr_par' for testing of parallel work of the progress. |
|||
mod - adm/upgrade.dat | Diff File | |||
mod - dox/dev_guides/upgrade/upgrade.md | Diff File | |||
mod - samples/CSharp/OCCTProxy/OCCTProxy.cpp | Diff File | |||
mod - samples/CSharp/OCCTProxy_D3D/OCCTProxyD3D.cpp | Diff File | |||
mod - src/BinDrivers/BinDrivers_DocumentRetrievalDriver.cxx | Diff File | |||
mod - src/BinDrivers/BinDrivers_DocumentRetrievalDriver.hxx | Diff File | |||
mod - src/BinDrivers/BinDrivers_DocumentStorageDriver.cxx | Diff File | |||
mod - src/BinDrivers/BinDrivers_DocumentStorageDriver.hxx | Diff File | |||
mod - src/BinLDrivers/BinLDrivers_DocumentRetrievalDriver.cxx | Diff File | |||
mod - src/BinLDrivers/BinLDrivers_DocumentRetrievalDriver.hxx | Diff File | |||
mod - src/BinLDrivers/BinLDrivers_DocumentStorageDriver.cxx | Diff File | |||
mod - src/BinLDrivers/BinLDrivers_DocumentStorageDriver.hxx | Diff File | |||
mod - src/BinMNaming/BinMNaming_NamedShapeDriver.cxx | Diff File | |||
mod - src/BinMNaming/BinMNaming_NamedShapeDriver.hxx | Diff File | |||
mod - src/BinTools/BinTools.cxx | Diff File | |||
mod - src/BinTools/BinTools.hxx | Diff File | |||
mod - src/BinTools/BinTools_Curve2dSet.cxx | Diff File | |||
mod - src/BinTools/BinTools_Curve2dSet.hxx | Diff File | |||
mod - src/BinTools/BinTools_CurveSet.cxx | Diff File | |||
mod - src/BinTools/BinTools_CurveSet.hxx | Diff File | |||
mod - src/BinTools/BinTools_ShapeSet.cxx | Diff File | |||
mod - src/BinTools/BinTools_ShapeSet.hxx | Diff File | |||
mod - src/BinTools/BinTools_SurfaceSet.cxx | Diff File | |||
mod - src/BinTools/BinTools_SurfaceSet.hxx | Diff File | |||
mod - src/BOPAlgo/BOPAlgo_ArgumentAnalyzer.cxx | Diff File | |||
mod - src/BOPAlgo/BOPAlgo_BOP.cxx | Diff File | |||
mod - src/BOPAlgo/BOPAlgo_Builder.cxx | Diff File | |||
mod - src/BOPAlgo/BOPAlgo_Builder_2.cxx | Diff File | |||
mod - src/BOPAlgo/BOPAlgo_Builder_3.cxx | Diff File | |||
mod - src/BOPAlgo/BOPAlgo_CheckerSI.cxx | Diff File | |||
mod - src/BOPAlgo/BOPAlgo_MakerVolume.cxx | Diff File | |||
mod - src/BOPAlgo/BOPAlgo_Options.cxx | Diff File | |||
mod - src/BOPAlgo/BOPAlgo_Options.hxx | Diff File | |||
mod - src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx | Diff File | |||
mod - src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx | Diff File | |||
mod - src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx | Diff File | |||
mod - src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx | Diff File | |||
mod - src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx | Diff File | |||
mod - src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx | Diff File | |||
mod - src/BOPAlgo/BOPAlgo_Splitter.cxx | Diff File | |||
mod - src/BRepAlgoAPI/BRepAlgoAPI_Algo.hxx | Diff File | |||
mod - src/BRepAlgoAPI/BRepAlgoAPI_BuilderAlgo.cxx | Diff File | |||
mod - src/BRepAlgoAPI/BRepAlgoAPI_Check.cxx | Diff File | |||
mod - src/BRepBuilderAPI/BRepBuilderAPI_Sewing.cxx | Diff File | |||
mod - src/BRepBuilderAPI/BRepBuilderAPI_Sewing.hxx | Diff File | |||
mod - src/BRepTest/BRepTest_SurfaceCommands.cxx | Diff File | |||
mod - src/BRepToIGES/BRepToIGES_BREntity.cxx | Diff File | |||
mod - src/BRepToIGES/BRepToIGES_BREntity.hxx | Diff File | |||
mod - src/BRepToIGES/BRepToIGES_BRShell.cxx | Diff File | |||
mod - src/BRepToIGES/BRepToIGES_BRShell.hxx | Diff File | |||
mod - src/BRepToIGES/BRepToIGES_BRSolid.cxx | Diff File | |||
mod - src/BRepToIGES/BRepToIGES_BRSolid.hxx | Diff File | |||
mod - src/BRepToIGESBRep/BRepToIGESBRep_Entity.cxx | Diff File | |||
mod - src/BRepToIGESBRep/BRepToIGESBRep_Entity.hxx | Diff File | |||
mod - src/BRepTools/BRepTools.cxx | Diff File | |||
mod - src/BRepTools/BRepTools.hxx | Diff File | |||
mod - src/BRepTools/BRepTools_Modifier.cxx | Diff File | |||
mod - src/BRepTools/BRepTools_Modifier.hxx | Diff File | |||
mod - src/BRepTools/BRepTools_ShapeSet.cxx | Diff File | |||
mod - src/BRepTools/BRepTools_ShapeSet.hxx | Diff File | |||
mod - src/CDF/CDF_Application.cxx | Diff File | |||
mod - src/CDF/CDF_Application.hxx | Diff File | |||
mod - src/CDF/CDF_Store.cxx | Diff File | |||
mod - src/CDF/CDF_Store.hxx | Diff File | |||
mod - src/CDF/CDF_StoreList.cxx | Diff File | |||
mod - src/CDF/CDF_StoreList.hxx | Diff File | |||
mod - src/CDM/CDM_Application.hxx | Diff File | |||
mod - src/DBRep/DBRep.cxx | Diff File | |||
mod - src/DDocStd/DDocStd_ApplicationCommands.cxx | Diff File | |||
mod - src/Draw/Draw.cxx | Diff File | |||
mod - src/Draw/Draw.hxx | Diff File | |||
mod - src/Draw/Draw_ProgressIndicator.cxx | Diff File | |||
mod - src/Draw/Draw_ProgressIndicator.hxx | Diff File | |||
mod - src/Draw/Draw_VariableCommands.cxx | Diff File | |||
mod - src/GeomPlate/GeomPlate_BuildPlateSurface.cxx | Diff File | |||
mod - src/GeomPlate/GeomPlate_BuildPlateSurface.hxx | Diff File | |||
mod - src/GeomTools/GeomTools_Curve2dSet.cxx | Diff File | |||
mod - src/GeomTools/GeomTools_Curve2dSet.hxx | Diff File | |||
mod - src/GeomTools/GeomTools_CurveSet.cxx | Diff File | |||
mod - src/GeomTools/GeomTools_CurveSet.hxx | Diff File | |||
mod - src/GeomTools/GeomTools_SurfaceSet.cxx | Diff File | |||
mod - src/GeomTools/GeomTools_SurfaceSet.hxx | Diff File | |||
mod - src/IGESCAFControl/IGESCAFControl_Reader.cxx | Diff File | |||
mod - src/IGESCAFControl/IGESCAFControl_Reader.hxx | Diff File | |||
mod - src/IGESCAFControl/IGESCAFControl_Writer.cxx | Diff File | |||
mod - src/IGESCAFControl/IGESCAFControl_Writer.hxx | Diff File | |||
mod - src/IGESControl/IGESControl_ActorWrite.cxx | Diff File | |||
mod - src/IGESControl/IGESControl_ActorWrite.hxx | Diff File | |||
mod - src/IGESControl/IGESControl_Controller.cxx | Diff File | |||
mod - src/IGESControl/IGESControl_Controller.hxx | Diff File | |||
mod - src/IGESControl/IGESControl_Writer.cxx | Diff File | |||
mod - src/IGESControl/IGESControl_Writer.hxx | Diff File | |||
mod - src/IGESToBRep/IGESToBRep_Actor.cxx | Diff File | |||
mod - src/IGESToBRep/IGESToBRep_Actor.hxx | Diff File | |||
mod - src/IGESToBRep/IGESToBRep_BRepEntity.cxx | Diff File | |||
mod - src/IGESToBRep/IGESToBRep_BRepEntity.hxx | Diff File | |||
mod - src/IGESToBRep/IGESToBRep_CurveAndSurface.cxx | Diff File | |||
mod - src/IGESToBRep/IGESToBRep_CurveAndSurface.hxx | Diff File | |||
mod - src/IGESToBRep/IGESToBRep_Reader.cxx | Diff File | |||
mod - src/IGESToBRep/IGESToBRep_Reader.hxx | Diff File | |||
mod - src/math/math_Gauss.cxx | Diff File | |||
mod - src/math/math_Gauss.hxx | Diff File | |||
mod - src/math/math_Recipes.cxx | Diff File | |||
mod - src/math/math_Recipes.hxx | Diff File | |||
mod - src/Message/FILES | Diff File | |||
mod - src/Message/Message_ProgressIndicator.cxx | Diff File | |||
mod - src/Message/Message_ProgressIndicator.hxx | Diff File | |||
rm - src/Message/Message_ProgressIndicator.lxx | Diff File | |||
add - src/Message/Message_ProgressRange.hxx | Diff File | |||
rm - src/Message/Message_ProgressScale.cxx | Diff File | |||
rm - src/Message/Message_ProgressScale.hxx | Diff File | |||
rm - src/Message/Message_ProgressScale.lxx | Diff File | |||
add - src/Message/Message_ProgressScope.hxx | Diff File | |||
rm - src/Message/Message_ProgressSentry.cxx | Diff File | |||
mod - src/Message/Message_ProgressSentry.hxx | Diff File | |||
rm - src/Message/Message_ProgressSentry.lxx | Diff File | |||
rm - src/Message/Message_SequenceOfProgressScale.hxx | Diff File | |||
mod - src/PCDM/PCDM_Reader.hxx | Diff File | |||
mod - src/PCDM/PCDM_StorageDriver.cxx | Diff File | |||
mod - src/PCDM/PCDM_StorageDriver.hxx | Diff File | |||
mod - src/PCDM/PCDM_Writer.hxx | Diff File | |||
mod - src/Plate/Plate_Plate.cxx | Diff File | |||
mod - src/Plate/Plate_Plate.hxx | Diff File | |||
mod - src/QABugs/QABugs_11.cxx | Diff File | |||
mod - src/RWGltf/RWGltf_CafReader.cxx | Diff File | |||
mod - src/RWGltf/RWGltf_CafReader.hxx | Diff File | |||
mod - src/RWGltf/RWGltf_CafWriter.cxx | Diff File | |||
mod - src/RWGltf/RWGltf_CafWriter.hxx | Diff File | |||
mod - src/RWGltf/RWGltf_GltfJsonParser.cxx | Diff File | |||
mod - src/RWGltf/RWGltf_GltfJsonParser.pxx | Diff File | |||
mod - src/RWMesh/RWMesh_CafReader.cxx | Diff File | |||
mod - src/RWMesh/RWMesh_CafReader.hxx | Diff File | |||
mod - src/RWObj/RWObj.cxx | Diff File | |||
mod - src/RWObj/RWObj.hxx | Diff File | |||
mod - src/RWObj/RWObj_CafReader.cxx | Diff File | |||
mod - src/RWObj/RWObj_CafReader.hxx | Diff File | |||
mod - src/RWObj/RWObj_Reader.cxx | Diff File | |||
mod - src/RWObj/RWObj_Reader.hxx | Diff File | |||
mod - src/RWStl/RWStl.cxx | Diff File | |||
mod - src/RWStl/RWStl.hxx | Diff File | |||
mod - src/RWStl/RWStl_Reader.cxx | Diff File | |||
mod - src/RWStl/RWStl_Reader.hxx | Diff File | |||
mod - src/ShapeCustom/ShapeCustom.cxx | Diff File | |||
mod - src/ShapeCustom/ShapeCustom.hxx | Diff File | |||
mod - src/ShapeFix/ShapeFix.cxx | Diff File | |||
mod - src/ShapeFix/ShapeFix.hxx | Diff File | |||
mod - src/ShapeFix/ShapeFix_Shape.cxx | Diff File | |||
mod - src/ShapeFix/ShapeFix_Shape.hxx | Diff File | |||
mod - src/ShapeFix/ShapeFix_Shell.cxx | Diff File | |||
mod - src/ShapeFix/ShapeFix_Shell.hxx | Diff File | |||
mod - src/ShapeFix/ShapeFix_Solid.cxx | Diff File | |||
mod - src/ShapeFix/ShapeFix_Solid.hxx | Diff File | |||
mod - src/ShapeProcess/ShapeProcess.cxx | Diff File | |||
mod - src/ShapeProcess/ShapeProcess.hxx | Diff File | |||
mod - src/ShapeProcess/ShapeProcess_Context.cxx | Diff File | |||
mod - src/ShapeProcess/ShapeProcess_Context.hxx | Diff File | |||
mod - src/ShapeProcess/ShapeProcess_Operator.hxx | Diff File | |||
mod - src/ShapeProcess/ShapeProcess_OperFunc.hxx | Diff File | |||
mod - src/ShapeProcess/ShapeProcess_OperLibrary.cxx | Diff File | |||
mod - src/ShapeProcess/ShapeProcess_UOperator.cxx | Diff File | |||
mod - src/ShapeProcess/ShapeProcess_UOperator.hxx | Diff File | |||
mod - src/ShapeProcessAPI/ShapeProcessAPI_ApplySequence.cxx | Diff File | |||
mod - src/ShapeProcessAPI/ShapeProcessAPI_ApplySequence.hxx | Diff File | |||
mod - src/StdLDrivers/StdLDrivers_DocumentRetrievalDriver.cxx | Diff File | |||
mod - src/StdLDrivers/StdLDrivers_DocumentRetrievalDriver.hxx | Diff File | |||
mod - src/STEPCAFControl/STEPCAFControl_Reader.cxx | Diff File | |||
mod - src/STEPCAFControl/STEPCAFControl_Reader.hxx | Diff File | |||
mod - src/STEPCAFControl/STEPCAFControl_Writer.cxx | Diff File | |||
mod - src/STEPCAFControl/STEPCAFControl_Writer.hxx | Diff File | |||
mod - src/STEPControl/STEPControl_ActorRead.cxx | Diff File | |||
mod - src/STEPControl/STEPControl_ActorRead.hxx | Diff File | |||
mod - src/STEPControl/STEPControl_ActorWrite.cxx | Diff File | |||
mod - src/STEPControl/STEPControl_ActorWrite.hxx | Diff File | |||
mod - src/STEPControl/STEPControl_Controller.cxx | Diff File | |||
mod - src/STEPControl/STEPControl_Controller.hxx | Diff File | |||
mod - src/STEPControl/STEPControl_Reader.cxx | Diff File | |||
mod - src/STEPControl/STEPControl_Reader.hxx | Diff File | |||
mod - src/STEPControl/STEPControl_Writer.cxx | Diff File | |||
mod - src/STEPControl/STEPControl_Writer.hxx | Diff File | |||
mod - src/StepToTopoDS/StepToTopoDS_Builder.cxx | Diff File | |||
mod - src/StepToTopoDS/StepToTopoDS_Builder.hxx | Diff File | |||
mod - src/StepToTopoDS/StepToTopoDS_MakeTransformed.cxx | Diff File | |||
mod - src/StepToTopoDS/StepToTopoDS_MakeTransformed.hxx | Diff File | |||
mod - src/StepToTopoDS/StepToTopoDS_TranslateShell.cxx | Diff File | |||
mod - src/StepToTopoDS/StepToTopoDS_TranslateShell.hxx | Diff File | |||
mod - src/StlAPI/StlAPI_Writer.cxx | Diff File | |||
mod - src/StlAPI/StlAPI_Writer.hxx | Diff File | |||
mod - src/SWDRAW/SWDRAW_ShapeFix.cxx | Diff File | |||
mod - src/SWDRAW/SWDRAW_ShapeUpgrade.cxx | Diff File | |||
mod - src/TDocStd/TDocStd_Application.cxx | Diff File | |||
mod - src/TDocStd/TDocStd_Application.hxx | Diff File | |||
mod - src/TopoDSToStep/TopoDSToStep_Builder.cxx | Diff File | |||
mod - src/TopoDSToStep/TopoDSToStep_Builder.hxx | Diff File | |||
mod - src/TopoDSToStep/TopoDSToStep_MakeBrepWithVoids.cxx | Diff File | |||
mod - src/TopoDSToStep/TopoDSToStep_MakeBrepWithVoids.hxx | Diff File | |||
mod - src/TopoDSToStep/TopoDSToStep_MakeFacetedBrep.cxx | Diff File | |||
mod - src/TopoDSToStep/TopoDSToStep_MakeFacetedBrep.hxx | Diff File | |||
mod - src/TopoDSToStep/TopoDSToStep_MakeFacetedBrepAndBrepWithVoids.cxx | Diff File | |||
mod - src/TopoDSToStep/TopoDSToStep_MakeFacetedBrepAndBrepWithVoids.hxx | Diff File | |||
mod - src/TopoDSToStep/TopoDSToStep_MakeManifoldSolidBrep.cxx | Diff File | |||
mod - src/TopoDSToStep/TopoDSToStep_MakeManifoldSolidBrep.hxx | Diff File | |||
mod - src/TopoDSToStep/TopoDSToStep_MakeShellBasedSurfaceModel.cxx | Diff File | |||
mod - src/TopoDSToStep/TopoDSToStep_MakeShellBasedSurfaceModel.hxx | Diff File | |||
mod - src/TopTools/TopTools_LocationSet.cxx | Diff File | |||
mod - src/TopTools/TopTools_LocationSet.hxx | Diff File | |||
mod - src/TopTools/TopTools_ShapeSet.cxx | Diff File | |||
mod - src/TopTools/TopTools_ShapeSet.hxx | Diff File | |||
mod - src/Transfer/Transfer_Actor.gxx | Diff File | |||
mod - src/Transfer/Transfer_ActorDispatch.cxx | Diff File | |||
mod - src/Transfer/Transfer_ActorDispatch.hxx | Diff File | |||
mod - src/Transfer/Transfer_ActorOfFinderProcess.cxx | Diff File | |||
mod - src/Transfer/Transfer_ActorOfFinderProcess.hxx | Diff File | |||
mod - src/Transfer/Transfer_ActorOfProcessForFinder.hxx | Diff File | |||
mod - src/Transfer/Transfer_ActorOfProcessForTransient.hxx | Diff File | |||
mod - src/Transfer/Transfer_ActorOfTransientProcess.cxx | Diff File | |||
mod - src/Transfer/Transfer_ActorOfTransientProcess.hxx | Diff File | |||
mod - src/Transfer/Transfer_ProcessForFinder.hxx | Diff File | |||
mod - src/Transfer/Transfer_ProcessForFinder_0.cxx | Diff File | |||
mod - src/Transfer/Transfer_ProcessForTransient.hxx | Diff File | |||
mod - src/Transfer/Transfer_ProcessForTransient_0.cxx | Diff File | |||
mod - src/Transfer/Transfer_TransferOutput.cxx | Diff File | |||
mod - src/Transfer/Transfer_TransferOutput.hxx | Diff File | |||
mod - src/Transfer/Transfer_TransferProcess.gxx | Diff File | |||
mod - src/TransferBRep/TransferBRep_Reader.cxx | Diff File | |||
mod - src/TransferBRep/TransferBRep_Reader.hxx | Diff File | |||
mod - src/ViewerTest/ViewerTest_ViewerCommands.cxx | Diff File | |||
mod - src/XCAFDoc/XCAFDoc_NotesTool.hxx | Diff File | |||
mod - src/XmlDrivers/XmlDrivers_DocumentRetrievalDriver.cxx | Diff File | |||
mod - src/XmlDrivers/XmlDrivers_DocumentRetrievalDriver.hxx | Diff File | |||
mod - src/XmlDrivers/XmlDrivers_DocumentStorageDriver.cxx | Diff File | |||
mod - src/XmlDrivers/XmlDrivers_DocumentStorageDriver.hxx | Diff File | |||
mod - src/XmlLDrivers/XmlLDrivers_DocumentRetrievalDriver.cxx | Diff File | |||
mod - src/XmlLDrivers/XmlLDrivers_DocumentRetrievalDriver.hxx | Diff File | |||
mod - src/XmlLDrivers/XmlLDrivers_DocumentStorageDriver.cxx | Diff File | |||
mod - src/XmlLDrivers/XmlLDrivers_DocumentStorageDriver.hxx | Diff File | |||
mod - src/XmlMDF/XmlMDF.cxx | Diff File | |||
mod - src/XmlMDF/XmlMDF.hxx | Diff File | |||
mod - src/XmlMNaming/XmlMNaming_NamedShapeDriver.cxx | Diff File | |||
mod - src/XmlMNaming/XmlMNaming_NamedShapeDriver.hxx | Diff File | |||
mod - src/XSAlgo/XSAlgo_AlgoContainer.cxx | Diff File | |||
mod - src/XSAlgo/XSAlgo_AlgoContainer.hxx | Diff File | |||
mod - src/XSControl/XSControl_Controller.cxx | Diff File | |||
mod - src/XSControl/XSControl_Controller.hxx | Diff File | |||
mod - src/XSControl/XSControl_Reader.cxx | Diff File | |||
mod - src/XSControl/XSControl_Reader.hxx | Diff File | |||
mod - src/XSControl/XSControl_TransferReader.cxx | Diff File | |||
mod - src/XSControl/XSControl_TransferReader.hxx | Diff File | |||
mod - src/XSControl/XSControl_TransferWriter.cxx | Diff File | |||
mod - src/XSControl/XSControl_TransferWriter.hxx | Diff File | |||
mod - src/XSControl/XSControl_WorkSession.cxx | Diff File | |||
mod - src/XSControl/XSControl_WorkSession.hxx | Diff File | |||
mod - src/XSControl/XSControl_Writer.cxx | Diff File | |||
mod - src/XSControl/XSControl_Writer.hxx | Diff File | |||
mod - src/XSDRAWIGES/XSDRAWIGES.cxx | Diff File | |||
mod - src/XSDRAWSTEP/XSDRAWSTEP.cxx | Diff File | |||
mod - src/XSDRAWSTLVRML/XSDRAWSTLVRML.cxx | Diff File | |||
mod - tests/bugs/fclasses/bug28478 | Diff File | |||
mod - tests/bugs/fclasses/bug31092 | Diff File | |||
mod - tests/bugs/modalg_5/bug22747 | Diff File | |||
mod - tests/bugs/moddata_2/bug22572 | Diff File | |||
mod - tests/bugs/moddata_2/bug22746_1 | Diff File | |||
mod - tests/bugs/moddata_2/bug22746_2 | Diff File | |||
mod - tests/bugs/moddata_2/bug22746_3 | Diff File | |||
mod - tests/caf/progress/A1 | Diff File | |||
mod - tests/caf/progress/A2 | Diff File | |||
mod - tests/caf/progress/B1 | Diff File | |||
mod - tests/caf/progress/B2 | Diff File | |||
mod - tests/caf/progress/C1 | Diff File | |||
mod - tests/caf/progress/C2 | Diff File | |||
mod - tests/de_mesh/shape_write_stl/B1 | Diff File | |||
add - tests/perf/fclasses/progr_par | Diff File |