0024002: Overall code and build procedure refactoring -- automatic
[occt.git] / src / Interface / Interface_CheckTool.hxx
CommitLineData
42cf5bc1 1// Created on: 1993-02-02
2// Created by: Christian CAILLET
3// Copyright (c) 1993-1999 Matra Datavision
4// Copyright (c) 1999-2014 OPEN CASCADE SAS
5//
6// This file is part of Open CASCADE Technology software library.
7//
8// This library is free software; you can redistribute it and/or modify it under
9// the terms of the GNU Lesser General Public License version 2.1 as published
10// by the Free Software Foundation, with special exception defined in the file
11// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12// distribution for complete text of the license and disclaimer of any warranty.
13//
14// Alternatively, this file may be used under the terms of Open CASCADE
15// commercial license or contractual agreement.
16
17#ifndef _Interface_CheckTool_HeaderFile
18#define _Interface_CheckTool_HeaderFile
19
20#include <Standard.hxx>
21#include <Standard_DefineAlloc.hxx>
22#include <Standard_Handle.hxx>
23
24#include <Interface_ShareTool.hxx>
25#include <Standard_Integer.hxx>
26#include <Standard_Boolean.hxx>
27class Interface_GTool;
28class Interface_CheckFailure;
29class Interface_InterfaceModel;
30class Interface_Protocol;
31class Interface_Graph;
32class Interface_HGraph;
33class Standard_Transient;
34class Interface_ShareTool;
35class Interface_Check;
36class Message_Messenger;
37class Interface_CheckIterator;
38class Interface_EntityIterator;
39
40
41//! Performs Checks on Entities, using General Service Library and
42//! Modules to work. Works on one Entity or on a complete Model
43class Interface_CheckTool
44{
45public:
46
47 DEFINE_STANDARD_ALLOC
48
49
50 //! Creates a CheckTool, by calling the General Service Library
51 //! and Modules, selected through a Protocol, to work on a Model
52 //! Moreover, Protocol recognizes Unknown Entities
53 Standard_EXPORT Interface_CheckTool(const Handle(Interface_InterfaceModel)& model, const Handle(Interface_Protocol)& protocol);
54
55 //! Creates a CheckTool, by calling the General Service Library
56 //! and Modules, selected through a Protocol, to work on a Model
57 //! Protocol and so on are taken from the Model (its GTool)
58 Standard_EXPORT Interface_CheckTool(const Handle(Interface_InterfaceModel)& model);
59
60 //! Creates a CheckTool from a Graph. The Graph contains a Model
61 //! which designates a Protocol: they are used to create ShareTool
62 Standard_EXPORT Interface_CheckTool(const Interface_Graph& graph);
63
64 Standard_EXPORT Interface_CheckTool(const Handle(Interface_HGraph)& hgraph);
65
66 //! Fills as required a Check with the Error and Warning messages
67 //! produced by Checking a given Entity.
68 //! For an Erroneous or Corrected Entity : Check build at Analyse
69 //! time; else, Check computed for Entity (Verify integrity), can
70 //! use a Graph as required to control context
71 Standard_EXPORT void FillCheck (const Handle(Standard_Transient)& ent, const Interface_ShareTool& sh, Handle(Interface_Check)& ach);
72
73 //! Utility method which Prints the content of a Check
74 Standard_EXPORT void Print (const Handle(Interface_Check)& ach, const Handle(Message_Messenger)& S) const;
75
76 //! Simply Lists all the Checks and the Content (messages) and the
77 //! Entity, if there is, of each Check
78 //! (if all Checks are OK, nothing is Printed)
79 Standard_EXPORT void Print (const Interface_CheckIterator& list, const Handle(Message_Messenger)& S) const;
80
81 //! Returns the Check associated to an Entity identified by
82 //! its Number in a Model.
83 Standard_EXPORT Handle(Interface_Check) Check (const Standard_Integer num);
84
85 //! Checks if any Error has been detected (CheckList not empty)
86 //! Returns normally if none, raises exception if some exists.
87 //! It reuses the last computations from other checking methods,
88 //! unless the argument <resest> is given True
89 Standard_EXPORT void CheckSuccess (const Standard_Boolean reset = Standard_False);
90
91 //! Returns list of all "remarkable" informations, which include :
92 //! - GlobalCheck, if not empty
93 //! - Error Checks, for all Errors (Verify + Analyse)
94 //! - also Corrected Entities
95 //! - and Unknown Entities : for those, each Unknown Entity is
96 //! associated to an empty Check (it is neither an Error nor a
97 //! Correction, but a remarkable information)
98 Standard_EXPORT Interface_CheckIterator CompleteCheckList();
99
100 //! Returns list of all Errors detected
101 //! Note that presence of Unknown Entities is not an error
102 //! Cumulates : GlobalCheck if error +
103 //! AnalyseCheckList + VerifyCheckList
104 Standard_EXPORT Interface_CheckIterator CheckList();
105
106 //! Returns list of errors dectected at Analyse time (syntactic)
107 //! (note that GlobalCheck is not in this list)
108 Standard_EXPORT Interface_CheckIterator AnalyseCheckList();
109
110 //! Returns list of integrity constraints errors (semantic)
111 //! (note that GlobalCheck is not in this list)
112 Standard_EXPORT Interface_CheckIterator VerifyCheckList();
113
114 //! Returns list of Corrections (includes GlobalCheck if corrected)
115 Standard_EXPORT Interface_CheckIterator WarningCheckList();
116
117 //! Returns list of Unknown Entities
118 //! Note that Error and Erroneous Entities are not considered
119 //! as Unknown
120 Standard_EXPORT Interface_EntityIterator UnknownEntities();
121
122
123
124
125protected:
126
127
128
129
130
131private:
132
133
134
135 Handle(Interface_GTool) thegtool;
136 Interface_ShareTool theshare;
137 Standard_Integer thestat;
138
139
140};
141
142
143
144
145
146
147
148#endif // _Interface_CheckTool_HeaderFile