Use #raiseRequest to invoke the (inherently) proceedable QuerySignal.
Define #query (to be used instead of #raise).
--- a/QuerySig.st Fri Feb 27 19:30:19 1998 +0100
+++ b/QuerySig.st Mon Mar 02 13:01:14 1998 +0100
@@ -10,8 +10,6 @@
hereby transferred.
"
-'From Smalltalk/X, Version:3.1.9 on 31-aug-1997 at 8:06:37 pm' !
-
Signal subclass:#QuerySignal
instanceVariableNames:'defaultAnswer hasDefault'
classVariableNames:''
@@ -119,7 +117,7 @@
] do:[
[
1 // zero. 'an error which is caught in the handler'.
- (querySignal raise) == true ifTrue:[
+ (querySignal query) == true ifTrue:[
Transcript showCR:'query says: ok'.
] ifFalse:[
Transcript showCR:'query says: no'
@@ -140,7 +138,7 @@
'nesting'.
[
[
- (querySignal raise) == true ifTrue:[
+ (querySignal query) == true ifTrue:[
Transcript showCR:'query says: ok'.
] ifFalse:[
Transcript showCR:'query says: no'
@@ -253,7 +251,7 @@
q := QuerySignal new.
q answer:true do:[
- Transcript showCR:'query answers: ' , (q raise printString).
+ Transcript showCR:'query answers: ' , (q query printString).
]
"
@@ -263,15 +261,16 @@
q := QuerySignal new.
q answer:false do:[
- Transcript showCR:'first query answers: ' , (q raise printString).
+ Transcript showCR:'first query answers: ' , (q query printString).
q answer:true do:[
- Transcript showCR:'second query answers: ' , (q raise printString).
+ Transcript showCR:'second query answers: ' , (q query printString).
]
]
"
- "Created: 10.7.1996 / 15:08:20 / cg"
- "Modified: 14.10.1996 / 16:59:18 / cg"
+ "Created: / 10.7.1996 / 15:08:20 / cg"
+ "Modified: / 14.10.1996 / 16:59:18 / cg"
+ "Modified: / 2.3.1998 / 10:41:45 / stefan"
! !
!QuerySignal methodsFor:'initialization'!
@@ -296,15 +295,15 @@
handler := [:ex | ex proceedWith:nil]
] ifFalse:[
handler := [:ex | ex proceedWith:someValue].
- ]
+ ]
]
].
self handlerBlock:handler.
"
- QuerySignal new raise
- (QuerySignal new defaultAnswer:true) raise
- (QuerySignal new defaultAnswer:false) raise
+ QuerySignal new query
+ (QuerySignal new defaultAnswer:true) query
+ (QuerySignal new defaultAnswer:false) query
"
"
@@ -312,7 +311,7 @@
sig := QuerySignal new.
sig defaultAnswer:false.
- rslt := sig raise.
+ rslt := sig query.
Transcript showCR:rslt.
"
@@ -323,12 +322,13 @@
sig defaultAnswer:false.
sig answer:true
do:[
- rslt := sig raise
+ rslt := sig query
].
Transcript showCR:rslt.
"
- "Modified: 3.1.1997 / 15:14:40 / cg"
+ "Modified: / 3.1.1997 / 15:14:40 / cg"
+ "Modified: / 2.3.1998 / 10:42:14 / stefan"
! !
!QuerySignal methodsFor:'queries'!
@@ -357,10 +357,10 @@
"Modified: 22.4.1996 / 13:45:10 / cg"
!
-raise
+query
"raise the query - return the handlers value, or the default
value, if there is no handler.
- This is exactly the functionality of my inherited method,
+ Invoking the handler is exactly the functionality of Signal>>raiseRequest,
but we can do it faster here."
|con|
@@ -372,7 +372,7 @@
or:#handle:from:do:.
con notNil ifTrue:[
(con selector == #handle:do:) ifFalse:[
- ^ super raise
+ ^ super raiseRequest
].
(con receiver == self) ifTrue:[
"/ found a non-busy handler ...
@@ -381,7 +381,7 @@
con := con sender.
con selector == #answer:do: ifFalse:[
con receiver == self ifFalse:[
- ^ super raise
+ ^ super raiseRequest
]
].
^ con argAt:1
@@ -390,18 +390,35 @@
].
"/ no handler found - return the default value
hasDefault == true ifTrue:[
- ^ defaultAnswer
+ ^ defaultAnswer
].
handlerBlock isNil ifTrue:[
^ nil
].
- ^ super raise
+ ^ super raiseRequest
+
+ "Modified: / 31.8.1997 / 08:05:32 / cg"
+ "Modified: / 2.3.1998 / 10:40:39 / stefan"
+!
+
+raise
+ "redefined to use #query"
- "Modified: 31.8.1997 / 08:05:32 / cg"
+ ^ self query
+
+ "Modified: / 2.3.1998 / 10:39:05 / stefan"
+!
+
+raiseRequest
+ "redefined to use #query"
+
+ ^ self query
+
+ "Created: / 2.3.1998 / 10:41:03 / stefan"
! !
!QuerySignal class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Attic/QuerySig.st,v 1.21 1997-09-06 17:22:50 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Attic/QuerySig.st,v 1.22 1998-03-02 12:01:14 stefan Exp $'
! !
--- a/QuerySignal.st Fri Feb 27 19:30:19 1998 +0100
+++ b/QuerySignal.st Mon Mar 02 13:01:14 1998 +0100
@@ -10,8 +10,6 @@
hereby transferred.
"
-'From Smalltalk/X, Version:3.1.9 on 31-aug-1997 at 8:06:37 pm' !
-
Signal subclass:#QuerySignal
instanceVariableNames:'defaultAnswer hasDefault'
classVariableNames:''
@@ -119,7 +117,7 @@
] do:[
[
1 // zero. 'an error which is caught in the handler'.
- (querySignal raise) == true ifTrue:[
+ (querySignal query) == true ifTrue:[
Transcript showCR:'query says: ok'.
] ifFalse:[
Transcript showCR:'query says: no'
@@ -140,7 +138,7 @@
'nesting'.
[
[
- (querySignal raise) == true ifTrue:[
+ (querySignal query) == true ifTrue:[
Transcript showCR:'query says: ok'.
] ifFalse:[
Transcript showCR:'query says: no'
@@ -253,7 +251,7 @@
q := QuerySignal new.
q answer:true do:[
- Transcript showCR:'query answers: ' , (q raise printString).
+ Transcript showCR:'query answers: ' , (q query printString).
]
"
@@ -263,15 +261,16 @@
q := QuerySignal new.
q answer:false do:[
- Transcript showCR:'first query answers: ' , (q raise printString).
+ Transcript showCR:'first query answers: ' , (q query printString).
q answer:true do:[
- Transcript showCR:'second query answers: ' , (q raise printString).
+ Transcript showCR:'second query answers: ' , (q query printString).
]
]
"
- "Created: 10.7.1996 / 15:08:20 / cg"
- "Modified: 14.10.1996 / 16:59:18 / cg"
+ "Created: / 10.7.1996 / 15:08:20 / cg"
+ "Modified: / 14.10.1996 / 16:59:18 / cg"
+ "Modified: / 2.3.1998 / 10:41:45 / stefan"
! !
!QuerySignal methodsFor:'initialization'!
@@ -296,15 +295,15 @@
handler := [:ex | ex proceedWith:nil]
] ifFalse:[
handler := [:ex | ex proceedWith:someValue].
- ]
+ ]
]
].
self handlerBlock:handler.
"
- QuerySignal new raise
- (QuerySignal new defaultAnswer:true) raise
- (QuerySignal new defaultAnswer:false) raise
+ QuerySignal new query
+ (QuerySignal new defaultAnswer:true) query
+ (QuerySignal new defaultAnswer:false) query
"
"
@@ -312,7 +311,7 @@
sig := QuerySignal new.
sig defaultAnswer:false.
- rslt := sig raise.
+ rslt := sig query.
Transcript showCR:rslt.
"
@@ -323,12 +322,13 @@
sig defaultAnswer:false.
sig answer:true
do:[
- rslt := sig raise
+ rslt := sig query
].
Transcript showCR:rslt.
"
- "Modified: 3.1.1997 / 15:14:40 / cg"
+ "Modified: / 3.1.1997 / 15:14:40 / cg"
+ "Modified: / 2.3.1998 / 10:42:14 / stefan"
! !
!QuerySignal methodsFor:'queries'!
@@ -357,10 +357,10 @@
"Modified: 22.4.1996 / 13:45:10 / cg"
!
-raise
+query
"raise the query - return the handlers value, or the default
value, if there is no handler.
- This is exactly the functionality of my inherited method,
+ Invoking the handler is exactly the functionality of Signal>>raiseRequest,
but we can do it faster here."
|con|
@@ -372,7 +372,7 @@
or:#handle:from:do:.
con notNil ifTrue:[
(con selector == #handle:do:) ifFalse:[
- ^ super raise
+ ^ super raiseRequest
].
(con receiver == self) ifTrue:[
"/ found a non-busy handler ...
@@ -381,7 +381,7 @@
con := con sender.
con selector == #answer:do: ifFalse:[
con receiver == self ifFalse:[
- ^ super raise
+ ^ super raiseRequest
]
].
^ con argAt:1
@@ -390,18 +390,35 @@
].
"/ no handler found - return the default value
hasDefault == true ifTrue:[
- ^ defaultAnswer
+ ^ defaultAnswer
].
handlerBlock isNil ifTrue:[
^ nil
].
- ^ super raise
+ ^ super raiseRequest
+
+ "Modified: / 31.8.1997 / 08:05:32 / cg"
+ "Modified: / 2.3.1998 / 10:40:39 / stefan"
+!
+
+raise
+ "redefined to use #query"
- "Modified: 31.8.1997 / 08:05:32 / cg"
+ ^ self query
+
+ "Modified: / 2.3.1998 / 10:39:05 / stefan"
+!
+
+raiseRequest
+ "redefined to use #query"
+
+ ^ self query
+
+ "Created: / 2.3.1998 / 10:41:03 / stefan"
! !
!QuerySignal class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/QuerySignal.st,v 1.21 1997-09-06 17:22:50 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/QuerySignal.st,v 1.22 1998-03-02 12:01:14 stefan Exp $'
! !