author | Stefan Vogel <sv@exept.de> |
Fri, 05 Jun 2015 18:10:58 +0200 | |
changeset 18439 | b9ef8e4966e4 |
parent 18355 | a584e6b0919f |
child 18366 | a6e62e167c32 |
child 19531 | 4b1b20de0ed1 |
permissions | -rw-r--r-- |
6270 | 1 |
" |
2 |
COPYRIGHT (c) 1997 by eXept Software AG / Claus Gittinger |
|
3 |
All Rights Reserved |
|
4 |
||
5 |
This software is furnished under a license and may be used |
|
6 |
only in accordance with the terms of that license and with the |
|
7 |
inclusion of the above copyright notice. This software may not |
|
8 |
be provided or otherwise made available to, or used by, any |
|
9 |
other person. No title to or ownership of the software is |
|
10 |
hereby transferred. |
|
11 |
" |
|
6271 | 12 |
"{ Package: 'stx:libbasic' }" |
6270 | 13 |
|
17464 | 14 |
"{ NameSpace: Smalltalk }" |
15 |
||
6270 | 16 |
Object subclass:#OSErrorHolder |
10388 | 17 |
instanceVariableNames:'errorSymbol errorCategory parameter' |
6271 | 18 |
classVariableNames:'Signals OSErrorSignal' |
6270 | 19 |
poolDictionaries:'' |
6271 | 20 |
category:'OS-Support' |
6270 | 21 |
! |
22 |
||
23 |
!OSErrorHolder class methodsFor:'documentation'! |
|
24 |
||
25 |
copyright |
|
26 |
" |
|
27 |
COPYRIGHT (c) 1997 by eXept Software AG / Claus Gittinger |
|
28 |
All Rights Reserved |
|
29 |
||
30 |
This software is furnished under a license and may be used |
|
31 |
only in accordance with the terms of that license and with the |
|
32 |
inclusion of the above copyright notice. This software may not |
|
33 |
be provided or otherwise made available to, or used by, any |
|
34 |
other person. No title to or ownership of the software is |
|
35 |
hereby transferred. |
|
36 |
" |
|
37 |
||
38 |
||
39 |
! |
|
40 |
||
41 |
documentation |
|
42 |
" |
|
6271 | 43 |
This class represents low level operating system errors. |
44 |
We do not use error numbers, because there may be different errnos |
|
45 |
for the same error on different systems. |
|
6270 | 46 |
|
6271 | 47 |
[instance variables:] |
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
48 |
errorSymbol symbol associated with this error |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
49 |
errorCategory symbol defining the error category. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
50 |
This is in fact a symbol that returns a |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
51 |
Signal when sent to myself. |
6270 | 52 |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
53 |
While the errorSymbol may be different on different platforms, |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
54 |
the errorCategories (which refer to the Signals that will be raised) |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
55 |
are identical. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
56 |
You can get an OS independent error message for an error by sending |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
57 |
#errorCategoryString. |
6271 | 58 |
|
59 |
[author:] |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
60 |
Stefan Vogel |
6271 | 61 |
|
62 |
[see also:] |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
63 |
OperatingSystem |
6270 | 64 |
" |
65 |
! ! |
|
66 |
||
6294 | 67 |
!OSErrorHolder class methodsFor:'Signal constants'! |
68 |
||
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
69 |
signals |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
70 |
Signals isNil ifTrue:[ |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
71 |
self initializeSignals |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
72 |
]. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
73 |
^ Signals |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
74 |
! |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
75 |
|
6297 | 76 |
allocRetrySignal |
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
77 |
^ self signals at:#allocRetrySignal |
6297 | 78 |
! |
79 |
||
80 |
badAccessorSignal |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
81 |
^ self signals at:#badAccessorSignal |
6297 | 82 |
! |
83 |
||
84 |
badArgumentsSignal |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
85 |
^ self signals at:#badArgumentsSignal |
6297 | 86 |
! |
87 |
||
9164 | 88 |
classNotRegisteredSignal |
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
89 |
^ self signals at:#classNotRegisteredSignal |
9164 | 90 |
! |
91 |
||
92 |
coNotInitializedSignal |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
93 |
^ self signals at:#coNotInitializedSignal |
9164 | 94 |
! |
95 |
||
10751
c3fdb104adba
dont forget the defaultOsErrorSignal
Claus Gittinger <cg@exept.de>
parents:
10388
diff
changeset
|
96 |
defaultOsErrorSignal |
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
97 |
^ self signals at:#defaultOsErrorSignal |
10751
c3fdb104adba
dont forget the defaultOsErrorSignal
Claus Gittinger <cg@exept.de>
parents:
10388
diff
changeset
|
98 |
! |
c3fdb104adba
dont forget the defaultOsErrorSignal
Claus Gittinger <cg@exept.de>
parents:
10388
diff
changeset
|
99 |
|
6297 | 100 |
existingReferentSignal |
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
101 |
^ self signals at:#existingReferentSignal |
6297 | 102 |
! |
103 |
||
104 |
illegalOperationSignal |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
105 |
^ self signals at:#illegalOperationSignal |
6297 | 106 |
! |
107 |
||
108 |
inaccessibleSignal |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
109 |
^ self signals at:#inaccessibleSignal |
6297 | 110 |
! |
111 |
||
112 |
inappropriateOperationSignal |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
113 |
^ self signals at:#inappropriateOperationSignal |
6297 | 114 |
! |
115 |
||
116 |
inappropriateReferentSignal |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
117 |
^ self signals at:#inappropriateReferentSignal |
6297 | 118 |
! |
119 |
||
6294 | 120 |
invalidArgumentsSignal |
121 |
"return the signal for invalid arguments (e.g. right class, wrong value)." |
|
122 |
||
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
123 |
^ self signals at:#invalidArgumentsSignal |
6297 | 124 |
! |
125 |
||
126 |
needRetrySignal |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
127 |
^ self signals at:#needRetrySignal |
6297 | 128 |
! |
129 |
||
9164 | 130 |
noAggregationSignal |
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
131 |
^ self signals at:#noAggregationSignal |
9164 | 132 |
! |
133 |
||
12954 | 134 |
noAssociationSignal |
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
135 |
^ self signals at:#noAssociationSignal |
12954 | 136 |
! |
137 |
||
6297 | 138 |
noDataSignal |
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
139 |
^ self signals at:#noDataSignal |
6297 | 140 |
! |
141 |
||
9164 | 142 |
noInterfaceSignal |
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
143 |
^ self signals at:#noInterfaceSignal |
9164 | 144 |
! |
145 |
||
6297 | 146 |
noMemorySignal |
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
147 |
^ self signals at:#noMemorySignal |
6297 | 148 |
! |
149 |
||
150 |
noPermissionsSignal |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
151 |
^ self signals at:#noPermissionsSignal |
6297 | 152 |
! |
153 |
||
154 |
noResourcesSignal |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
155 |
^ self signals at:#noResourcesSignal |
6297 | 156 |
! |
157 |
||
9179 | 158 |
noVerbsSignal |
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
159 |
^ self signals at:#noVerbsSignal |
9179 | 160 |
! |
161 |
||
6297 | 162 |
nonexistentSignal |
163 |
"return the signal for non existing referents (i.e. device, file etc.)." |
|
164 |
||
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
165 |
^ self signals at:#nonexistentSignal |
6297 | 166 |
! |
167 |
||
168 |
notReadySignal |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
169 |
^ self signals at:#notReadySignal |
6297 | 170 |
! |
171 |
||
172 |
peerFaultSignal |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
173 |
^ self signals at:#peerFaultSignal |
6297 | 174 |
! |
175 |
||
176 |
rangeErrorSignal |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
177 |
^ self signals at:#rangeErrorSignal |
6297 | 178 |
! |
179 |
||
9179 | 180 |
signalNamed:signalName |
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
181 |
^ self signals at:signalName |
9179 | 182 |
! |
183 |
||
6297 | 184 |
transferFaultSignal |
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
185 |
^ self signals at:#transferFaultSignal |
6297 | 186 |
! |
187 |
||
188 |
transientErrorSignal |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
189 |
^ self signals at:#transientErrorSignal |
6297 | 190 |
! |
191 |
||
192 |
unavailableReferentSignal |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
193 |
^ self signals at:#unavailableReferentSignal |
6297 | 194 |
! |
195 |
||
196 |
underSpecifiedSignal |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
197 |
^ self signals at:#underSpecifiedSignal |
6297 | 198 |
! |
199 |
||
9164 | 200 |
unknownNameSignal |
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
201 |
^ self signals at:#unknownNameSignal |
9164 | 202 |
! |
203 |
||
6297 | 204 |
unpreparedOperationSignal |
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
205 |
^ self signals at:#unpreparedOperationSignal |
6297 | 206 |
! |
207 |
||
208 |
unsupportedOperationSignal |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
209 |
^ self signals at:#unsupportedOperationSignal |
6297 | 210 |
! |
211 |
||
212 |
volumeFullSignal |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
213 |
^ self signals at:#volumeFullSignal |
6297 | 214 |
! |
215 |
||
216 |
wrongSubtypeForOperationSignal |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
217 |
^ self signals at:#wrongSubtypeForOperationSignal |
6294 | 218 |
! ! |
219 |
||
6270 | 220 |
!OSErrorHolder class methodsFor:'accessing'! |
221 |
||
222 |
errorSignal |
|
15191 | 223 |
^ OsError |
6270 | 224 |
|
225 |
"Created: 25.1.1997 / 18:07:55 / cg" |
|
226 |
! ! |
|
227 |
||
6271 | 228 |
!OSErrorHolder class methodsFor:'class initialization'! |
229 |
||
230 |
initialize |
|
231 |
"init signals etc." |
|
232 |
||
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
233 |
OSErrorSignal isNil ifTrue:[ |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
234 |
OSErrorSignal := OsError. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
235 |
OSErrorSignal notifierString:'OperatingSystem error'. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
236 |
] |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
237 |
! |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
238 |
|
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
239 |
initializeSignals |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
240 |
"init signals etc." |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
241 |
|
12957 | 242 |
|unavailableReferentSignal| |
6271 | 243 |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
244 |
Signals isNil ifTrue:[ |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
245 |
Signals := Dictionary new:40. |
6271 | 246 |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
247 |
OsNoResourcesError notifierString:'Not enough resources'. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
248 |
Signals at:#noResourcesSignal put:OsNoResourcesError. |
6271 | 249 |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
250 |
OsIllegalOperation notifierString:'Illegal Operation'. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
251 |
Signals at:#illegalOperationSignal put:OsIllegalOperation. |
6297 | 252 |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
253 |
OsInvalidArgumentsError notifierString:'Invalid Arguments'. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
254 |
Signals at:#invalidArgumentsSignal put:OsInvalidArgumentsError. |
6297 | 255 |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
256 |
OsInaccessibleError notifierString:'Referent inaccessible'. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
257 |
Signals at:#inaccessibleSignal put:OsInaccessibleError. |
6297 | 258 |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
259 |
OsTransferFaultError notifierString:'Transfer fault'. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
260 |
Signals at:#transferFaultSignal put:OsTransferFaultError. |
6297 | 261 |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
262 |
OsNeedRetryError notifierString:'Retry Operation'. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
263 |
Signals at:#needRetrySignal put:OsNeedRetryError. |
6271 | 264 |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
265 |
Signals at:#defaultOsErrorSignal put:OSErrorSignal. |
10751
c3fdb104adba
dont forget the defaultOsErrorSignal
Claus Gittinger <cg@exept.de>
parents:
10388
diff
changeset
|
266 |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
267 |
"/ Information signals |
6271 | 268 |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
269 |
"/ s := self setupSignal:#informationSignal parent:OSErrorSignal |
12957 | 270 |
"/ notifier:'Information'. |
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
271 |
"/ self setupSignal:#operationStartedSignal parent:s |
12957 | 272 |
"/ notifier:'Operation started'. |
273 |
||
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
274 |
"/ Retry signals |
6271 | 275 |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
276 |
self setupSignal:#notReadySignal parent:OsNeedRetryError |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
277 |
notifier:' -- referent not ready'. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
278 |
self setupSignal:#transientErrorSignal parent:OsNeedRetryError |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
279 |
notifier:' -- transient error'. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
280 |
self setupSignal:#allocRetrySignal parent:OsNeedRetryError |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
281 |
notifier:' -- allocation failure'. |
6271 | 282 |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
283 |
"/ Resource signals |
6271 | 284 |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
285 |
self setupSignal:#noMemorySignal parent:OsNoResourcesError |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
286 |
notifier:' -- memory'. |
6271 | 287 |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
288 |
"/ Transfer faults |
6271 | 289 |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
290 |
self setupSignal:#noDataSignal parent:OsTransferFaultError |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
291 |
notifier:'Data unavailable/EOF reached'. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
292 |
self setupSignal:#peerFaultSignal parent:OsTransferFaultError |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
293 |
notifier:'Communication with peer failed'. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
294 |
self setupSignal:#volumeFullSignal parent:OsTransferFaultError |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
295 |
notifier:'Volume full'. |
6271 | 296 |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
297 |
"/ Inaccesible faults |
6271 | 298 |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
299 |
self setupSignal:#nonexistentSignal parent:OsInaccessibleError |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
300 |
notifier:'File does not exist'. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
301 |
unavailableReferentSignal := |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
302 |
self setupSignal:#unavailableReferentSignal parent:OsInaccessibleError |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
303 |
notifier:' currently'. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
304 |
self setupSignal:#noPermissionsSignal parent:OsInaccessibleError |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
305 |
notifier:'Permission denied'. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
306 |
self setupSignal:#existingReferentSignal parent:OsInaccessibleError |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
307 |
notifier:' -- already exists or currently in use'. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
308 |
self setupSignal:#inappropriateReferentSignal parent:OsInaccessibleError |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
309 |
notifier:' -- operation inappropriate'. |
6271 | 310 |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
311 |
"/ Illegal operations |
6271 | 312 |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
313 |
self setupSignal:#inappropriateOperationSignal parent:OsIllegalOperation |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
314 |
notifier:'Inappropriate operation'. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
315 |
self setupSignal:#wrongSubtypeForOperationSignal parent:OsIllegalOperation |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
316 |
notifier:' -- wrong subtype'. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
317 |
self setupSignal:#unsupportedOperationSignal parent:OsIllegalOperation |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
318 |
notifier:' -- on this platform'. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
319 |
self setupSignal:#unpreparedOperationSignal parent:OsIllegalOperation |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
320 |
notifier:' -- wrong sequence'. |
6271 | 321 |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
322 |
"/ Illegal arguments |
6271 | 323 |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
324 |
self setupSignal:#badArgumentsSignal parent:OsInvalidArgumentsError |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
325 |
notifier:' -- wrong class'. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
326 |
self setupSignal:#badAccessorSignal parent:OsInvalidArgumentsError |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
327 |
notifier:' -- accessor invalid'. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
328 |
self setupSignal:#rangeErrorSignal parent:OsInvalidArgumentsError |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
329 |
notifier:' -- out of range'. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
330 |
self setupSignal:#underSpecifiedSignal parent:OsInvalidArgumentsError |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
331 |
notifier:' -- operation not fully specified'. |
9164 | 332 |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
333 |
"/ COM errors |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
334 |
self setupSignal:#coNotInitializedSignal parent:OsIllegalOperation |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
335 |
notifier:'COM not initialized'. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
336 |
self setupSignal:#noInterfaceSignal parent:unavailableReferentSignal |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
337 |
notifier:'No such interface'. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
338 |
self setupSignal:#classNotRegisteredSignal parent:unavailableReferentSignal |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
339 |
notifier:'Class not registered'. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
340 |
self setupSignal:#noAggregationSignal parent:OsIllegalOperation |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
341 |
notifier:'No Aggregation'. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
342 |
self setupSignal:#unknownNameSignal parent:unavailableReferentSignal |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
343 |
notifier:'Unknown member name'. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
344 |
self setupSignal:#noVerbsSignal parent:OsIllegalOperation |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
345 |
notifier:'No verbs for OLE object'. |
11031 | 346 |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
347 |
"/ Shell errors |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
348 |
self setupSignal:#noAssociationSignal parent:unavailableReferentSignal |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
349 |
notifier:'No association for file extension'. |
6271 | 350 |
]. |
351 |
||
352 |
" |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
353 |
Signals := nil. |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
354 |
self initializeSignals |
6271 | 355 |
" |
6297 | 356 |
! |
357 |
||
358 |
setupSignal:aSymbol parent:parentSignal notifier:aString |
|
359 |
"setup a signal, which can be retrieved by sending aSymbol to self. |
|
360 |
Return the new signal" |
|
361 |
||
362 |
|s| |
|
363 |
||
364 |
Signals at:aSymbol |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
365 |
put:(s := parentSignal newSignal |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
366 |
notifierString:aString; |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
367 |
nameClass:self message:aSymbol). |
6297 | 368 |
^ s |
6271 | 369 |
! ! |
370 |
||
6270 | 371 |
!OSErrorHolder methodsFor:'accessing'! |
372 |
||
15463 | 373 |
errorCategory |
374 |
^ errorCategory |
|
375 |
! |
|
376 |
||
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
377 |
errorSymbol |
15463 | 378 |
^ errorSymbol |
379 |
! |
|
380 |
||
6280 | 381 |
errorSymbol:sym errorCategory:typ |
6270 | 382 |
errorSymbol := sym. |
383 |
errorCategory := typ. |
|
10388 | 384 |
! |
385 |
||
386 |
parameter |
|
387 |
^ parameter |
|
388 |
! |
|
389 |
||
390 |
parameter:something |
|
391 |
parameter := something. |
|
6270 | 392 |
! ! |
393 |
||
6294 | 394 |
!OSErrorHolder methodsFor:'error reporting'! |
395 |
||
396 |
reportError |
|
397 |
"Report an error." |
|
398 |
"Delegate to the receiver's error reporter." |
|
399 |
||
9179 | 400 |
|signal| |
401 |
||
402 |
signal := self class signalNamed:errorCategory. |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
403 |
signal |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
404 |
raiseWith:self |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
405 |
errorString:(parameter isNil ifTrue:[nil] ifFalse:[' - ', parameter printString]) |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
406 |
in:(thisContext "sender"). |
9179 | 407 |
|
6294 | 408 |
"/ ^ self errorReporter reportOn:self |
409 |
! ! |
|
410 |
||
6271 | 411 |
!OSErrorHolder methodsFor:'others'! |
412 |
||
10388 | 413 |
errorString |
414 |
|s| |
|
415 |
||
416 |
s := OperatingSystem errorStringForSymbol:errorSymbol. |
|
417 |
parameter notNil ifTrue:[ |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
418 |
^ s,': ',parameter printString. |
10388 | 419 |
]. |
420 |
^ s |
|
421 |
||
422 |
"Modified: / 12-02-2007 / 12:29:07 / cg" |
|
15463 | 423 |
! ! |
424 |
||
425 |
!OSErrorHolder methodsFor:'printing'! |
|
6270 | 426 |
|
15463 | 427 |
printOn:aStream |
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
428 |
aStream |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
429 |
nextPutAll:self className; |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
430 |
nextPut:$(; |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
431 |
nextPutAll:errorSymbol; |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
432 |
nextPutAll:', '; |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
433 |
nextPutAll:errorCategory; |
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
434 |
nextPut:$). |
6270 | 435 |
! ! |
6271 | 436 |
|
7593 | 437 |
!OSErrorHolder class methodsFor:'documentation'! |
438 |
||
439 |
version |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
440 |
^ '$Header: /cvs/stx/stx/libbasic/OSErrorHolder.st,v 1.24 2015-05-16 09:59:00 cg Exp $' |
12155 | 441 |
! |
442 |
||
443 |
version_CVS |
|
18355
a584e6b0919f
lazy initialization of signals
Claus Gittinger <cg@exept.de>
parents:
17464
diff
changeset
|
444 |
^ '$Header: /cvs/stx/stx/libbasic/OSErrorHolder.st,v 1.24 2015-05-16 09:59:00 cg Exp $' |
7593 | 445 |
! ! |
446 |
||
15191 | 447 |
|
6271 | 448 |
OSErrorHolder initialize! |