0023457: Slow text rendering
[occt.git] / src / Standard / Standard.cdl
1 -- Created on: 1991-09-05
2 -- Created by: J.P. TIRAUlt
3 -- Copyright (c) 1991-1999 Matra Datavision
4 -- Copyright (c) 1999-2012 OPEN CASCADE SAS
5 --
6 -- The content of this file is subject to the Open CASCADE Technology Public
7 -- License Version 6.5 (the "License"). You may not use the content of this file
8 -- except in compliance with the License. Please obtain a copy of the License
9 -- at http://www.opencascade.org and read it completely before using this file.
10 --
11 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13 --
14 -- The Original Code and all software distributed under the License is
15 -- distributed on an "AS IS" basis, without warranty of any kind, and the
16 -- Initial Developer hereby disclaims all such warranties, including without
17 -- limitation, any warranties of merchantability, fitness for a particular
18 -- purpose or non-infringement. Please see the License for the specific terms
19 -- and conditions governing the rights and limitations under the License.
20
21 --              C. LEYNADIER 
22
23 package Standard
24
25     ---Purpose: 
26     --   The package Standard provides the minimum services necessary 
27     --   for other toolkits to handle persistent and transient objects. 
28     --   It is the Standard run-time encapsulation of the CAS.CADE 
29     --   database, that is, it defines a single programming interface 
30     --   for creating and accessing persistent objects manipulated by 
31     --   handles.
32
33
34 is
35     enumeration InternalType is
36                 Void,          -- TYPUND     0x00000000  /* Undefined    */
37                 Char,          -- TYPIT1     0x00010001  /* Byte         */
38                 ExtChar,       -- TYPIT2     0x00020001  /* Integer*2    */
39                 LongInt,       -- TYPIT4     0x00040001  /* Integer*4    */
40                 Bool,          -- TYPLO4     0x00040002  /* Logical*4    */
41                 Float,         -- TYPRE4     0x00040004  /* Real*4       */
42                 LongDouble,    -- TYPRE8     0x00080004  /* Real*8       */
43                 String,        -- TYPCHR     0x00000010  /* Character    */
44                 EString,       -- TYPCHREXT  0x00000011  /* Character    */
45                 EntryAddress,  -- TYPENT     0x00040020  /* Function address */
46                 DataAddress,   -- TYPDAD     0x00040080  /* Data address */
47                 EngineHandle,  -- TYPHDLE    0x00004000  /* Handle       */
48                 Long64,        -- TYPIT8     0x00080001  /* Integer*8    */
49                 Array;         -- TYPARR     0x00008000  /* Tableau      */
50
51     enumeration WayOfLife is IsNothing, IsAddress, IsTransient, IsPersistent, IsNotLoaded;
52     enumeration KindOfType is IsUnKnown, IsClass, IsEnumeration, IsPrimitive, IsImported, IsPackage;
53     enumeration HandlerStatus is HandlerVoid, HandlerJumped, HandlerProcessed;
54
55     imported IStream;
56     imported OStream;
57     imported SStream;
58     imported UUID;
59     imported JmpBuf;
60     imported ThreadId;
61
62     primitive CString;
63     primitive ExtString;
64     primitive Address;
65     primitive Size;
66     primitive PByte;
67     primitive PCharacter;
68     primitive PExtCharacter;
69
70     primitive Utf8Char;
71     primitive Utf16Char;
72     primitive Utf32Char;
73     primitive WideChar;
74
75     deferred class ErrorHandlerCallback;
76     class ErrorHandler;
77     
78     class AncestorIterator;
79     
80     deferred class Storable ;
81         primitive Boolean      inherits Storable;
82         primitive Character    inherits Storable;
83         primitive ExtCharacter inherits Storable;
84         primitive Integer      inherits Storable;
85         primitive Byte         inherits Storable;
86         primitive Real         inherits Storable;
87         primitive ShortReal    inherits Storable;
88         primitive Time         inherits Storable;
89         primitive OId          inherits Storable;
90
91         deferred class Persistent ; -- inherits Storable
92         class GUID;     -- inherits Storable
93
94     deferred class Transient ;
95             class Type; -- inherits Transient
96             class Failure; --  inherits Transient
97                 exception AbortiveTransaction inherits Failure;
98                 exception DomainError inherits Failure;
99                     exception ConstructionError inherits DomainError;
100                     exception NullObject inherits DomainError;
101                     exception NoSuchObject inherits DomainError;
102                     exception NoMoreObject inherits DomainError;
103                     exception ImmutableObject inherits DomainError;
104                     exception TypeMismatch inherits DomainError;
105                     exception MultiplyDefined inherits DomainError;
106                     exception DimensionError inherits DomainError;
107                         exception DimensionMismatch inherits DimensionError;
108                     exception RangeError inherits DomainError;
109                         exception OutOfRange inherits RangeError;
110                         exception NullValue inherits RangeError;
111                         exception NegativeValue inherits RangeError;
112                 exception NumericError inherits Failure;
113                     exception Underflow inherits NumericError;
114                     exception Overflow inherits NumericError;
115                     exception DivideByZero inherits NumericError;
116                 exception ProgramError inherits Failure;
117                     exception NotImplemented inherits ProgramError;
118                     exception OutOfMemory inherits ProgramError;
119                 exception LicenseError inherits Failure;
120                     exception LicenseNotFound inherits LicenseError;
121                     exception TooManyUsers inherits LicenseError;
122
123     pointer PErrorHandler  to ErrorHandler; 
124     
125     
126     -- 
127     --  Mutex: a class to synchronize access to shared data 
128     --  from threads within one process
129     --
130     imported Mutex;
131     
132     -- 
133     --  Memory manager  
134     --
135     Allocate (aSize: Size from Standard)  
136         returns Address from Standard; 
137     ---Purpose:  Allocates memory blocks  
138     --           aSize - bytes to  allocate 
139     
140     Free  (aStorage:in out Address from Standard); 
141     ---Purpose:  Deallocates memory blocks 
142     --           aStorage - previously allocated memory block to be freed                
143
144     Reallocate(aStorage: in out Address from Standard;
145                aNewSize: Size from Standard)  
146         returns Address from Standard; 
147     ---Purpose:  Reallocates memory blocks 
148     --           aStorage - previously allocated memory block 
149     --           aNewSize - new size in bytes 
150      
151     Purge returns Integer from Standard; 
152     ---Purpose:  Deallocates the storage retained on the free list 
153     --           and clears the list. 
154     --           Returns non-zero if some memory has been actually freed.
155
156     IsReentrant returns Boolean from Standard;
157     ---Purpose: Returns boolean flag indicating whether OCCT is
158     --          operating in reentrant mode. This flag affects OCCT 
159     --          memory manager, exception and signal handling,
160     --          operations with handles etc., making them thread-safe.
161     --
162     --          By default, this flag is set to False, in order 
163     --          to avoid performance reduction due to locking.
164     --
165     --          In multithreaded applications this flag must be set to 
166     --          True, either by calling method SetReentrant(),
167     --          or by defining environment variable MMGT_REENTRANT.
168
169     SetReentrant (isReentrant: Boolean from Standard);
170     ---Purpose: Sets boolean flag indicating whether OCCT is
171     --          operating in reentrant mode. 
172     --          See method IsReentrant() for more information.
173     --          Note: This method may be called only when no any other
174     --                thread using OCCT exists
175
176 end Standard;