0024428: Implementation of LGPL license
[occt.git] / src / Interface / Interface.cdl
1 -- Created on: 1992-02-03
2 -- Created by: Christian CAILLET
3 -- Copyright (c) 1992-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
9 -- under the terms of the GNU Lesser General Public 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 package Interface
18
19     ---Purpose : defines a general frame for interface data
20     --           used to manipulate results of normalized Interface outputs
21     --           (i.e. files), also as a basis to define transfer operations
22     --           (in other packages : see package Transfer)
23
24 uses LibCtl, TCollection, TColStd, MMgt, Standard, Dico, MoniTool, Message
25
26 is
27
28     deferred class InterfaceModel;
29
30         -- --   Data Definitions   -- --
31
32     class UndefinedContent;
33     class ReportEntity;
34
35     class EntityList;             -- for an (ordered) little list of Entities
36     private class EntityCluster;  -- ancillary class for the former
37     generic class JaggedArray;    -- to turn arround limitation on Array(Array)
38
39         -- --   Auxiliary Classes (results, working data)   -- --
40
41     class IntVal;
42     class EntityIterator;
43
44     class Graph;
45     class GraphContent;
46     class HGraph;
47     class IntList;
48     class BitMap;
49
50     class Check;
51     class CheckIterator;
52
53         -- --   General Services   -- --
54
55     deferred class Protocol;         -- manages also Active Protocol
56     deferred class GeneralModule;    -- (Shareds,Check,Copy,Trace)
57     class GeneralLib instantiates Library from LibCtl
58         (Transient, GeneralModule, Protocol from Interface);
59
60     class GTool;
61
62     class ShareTool;
63     class ShareFlags;
64     class CheckTool;
65
66     class CopyTool;
67     deferred class CopyControl;
68     class CopyMap;
69
70     class Category;
71     deferred class SignType;
72     class SignLabel;
73
74     class TypedValue;
75     class Static;
76     imported ValueSatisfies;
77     -- (val : HAsciiString) returns Boolean,  see Satisfies from TypedValue
78     imported ValueInterpret;
79     -- (typval : TypedValue; hval : HAsciiString; native : Boolean)
80     --   returns HAsciiString,  see Interpret from TypedValue
81     imported StaticSatisfies;
82     -- Function to be added to a Static for specific Satisfies
83
84     deferred generic class Recognizer;  -- aimed to create Interface Entities
85
86         -- --   File Access (Read & Write)   -- --
87
88     deferred class ReaderModule;
89     class ReaderLib instantiates  Library from LibCtl
90         (Transient, ReaderModule, Protocol from Interface);
91     
92     imported VectorOfFileParameter;
93     class FileParameter;
94     class ParamSet;          -- see also ParamList
95     class ParamList;
96     deferred class FileReaderData;
97     deferred class FileReaderTool;
98
99     class LineBuffer;
100     class FloatWriter;
101
102     class MSG;
103     class STAT;
104
105         -- --   Enumerations   -- --
106
107     enumeration ParamType is
108         ParamMisc, ParamInteger, ParamReal, ParamIdent, ParamVoid,   ParamText,
109         ParamEnum, ParamLogical, ParamSub,  ParamHexa,  ParamBinary;
110
111     enumeration DataState is
112         StateOK, LoadWarning, LoadFail, DataWarning, DataFail,
113         StateUnloaded, StateUnknown;
114     ---Purpose : validity state of anentity's content (see InterfaceModel)
115
116     enumeration CheckStatus is
117         CheckOK, CheckWarning, CheckFail, CheckAny, CheckMessage, CheckNoFail;
118     ---Purpose : Classifies checks
119     --           OK : check is empty  Warning : Warning, no Fail   Fail : Fail
120     --           Others to query :
121     --           Any : any status   Message : Warning/Fail  NoFail : Warning/OK
122
123         -- --  Exceptions  -- --
124
125     exception InterfaceError inherits Failure;
126     exception InterfaceMismatch inherits InterfaceError;
127     exception CheckFailure      inherits InterfaceError;
128
129         -- --  Instantiations  -- --
130
131     private class  SequenceOfCheck  instantiates           -- for HSequence
132          Sequence from TCollection (Check);
133     private class HSequenceOfCheck  instantiates           -- Transient
134         HSequence from TCollection (Check,SequenceOfCheck);
135
136     class Array1OfFileParameter instantiates               -- for ParamList :
137         Array1 from TCollection    (FileParameter);
138 --    class HArray1OfFileParameter instantiates                           -- Array, Transient
139 --        HArray1 from TCollection   (FileParameter,Array1OfFileParameter);
140
141     --  Useful Instantiations to define Data
142
143     class  DataMapOfTransientInteger  instantiates  DataMap  from TCollection
144         (Transient, Integer,MapTransientHasher from TColStd);
145
146     class  Array1OfHAsciiString instantiates   Array1  from TCollection
147         (HAsciiString from TCollection);
148
149     class HArray1OfHAsciiString instantiates  HArray1  from TCollection
150         (HAsciiString from TCollection,Array1OfHAsciiString);
151
152 --  ==============IndexedMapOfAsciiString===================
153 class MapAsciiStringHasher;    -- instantiates MapHasher from TCollection;
154
155 class IndexedMapOfAsciiString instantiates IndexedMap  from TCollection(AsciiString from TCollection,MapAsciiStringHasher from Interface);
156
157 -- ==================================
158
159 end Interface;