Plug.st
author claus
Sun, 26 Mar 1995 22:10:27 +0200
changeset 55 409211feffa2
parent 54 f8592e95890f
child 82 6cbb1c271549
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
55
409211feffa2 *** empty log message ***
claus
parents: 54
diff changeset
     1
'From Smalltalk/X, Version:2.10.5 on 26-mar-1995 at 4:21:12 am'!
54
f8592e95890f Initial revision
claus
parents:
diff changeset
     2
55
409211feffa2 *** empty log message ***
claus
parents: 54
diff changeset
     3
Model subclass:#Plug
54
f8592e95890f Initial revision
claus
parents:
diff changeset
     4
	 instanceVariableNames:'simulatedProtocol'
f8592e95890f Initial revision
claus
parents:
diff changeset
     5
	 classVariableNames:''
f8592e95890f Initial revision
claus
parents:
diff changeset
     6
	 poolDictionaries:''
f8592e95890f Initial revision
claus
parents:
diff changeset
     7
	 category:'Kernel-Objects'
f8592e95890f Initial revision
claus
parents:
diff changeset
     8
!
f8592e95890f Initial revision
claus
parents:
diff changeset
     9
f8592e95890f Initial revision
claus
parents:
diff changeset
    10
!Plug class methodsFor:'documentation'!
f8592e95890f Initial revision
claus
parents:
diff changeset
    11
f8592e95890f Initial revision
claus
parents:
diff changeset
    12
version
f8592e95890f Initial revision
claus
parents:
diff changeset
    13
"
55
409211feffa2 *** empty log message ***
claus
parents: 54
diff changeset
    14
$Header: /cvs/stx/stx/libview2/Plug.st,v 1.2 1995-03-26 20:10:27 claus Exp $
54
f8592e95890f Initial revision
claus
parents:
diff changeset
    15
"
f8592e95890f Initial revision
claus
parents:
diff changeset
    16
!
f8592e95890f Initial revision
claus
parents:
diff changeset
    17
f8592e95890f Initial revision
claus
parents:
diff changeset
    18
documentation
f8592e95890f Initial revision
claus
parents:
diff changeset
    19
"
f8592e95890f Initial revision
claus
parents:
diff changeset
    20
    A Plug is an objcet which simulates a protocol and evaluates
f8592e95890f Initial revision
claus
parents:
diff changeset
    21
    a corresponding block when receiving messages.
f8592e95890f Initial revision
claus
parents:
diff changeset
    22
    Its main use is for the demo doIts, to play the role of a model.
f8592e95890f Initial revision
claus
parents:
diff changeset
    23
    Plugs are not used in the system and exist as a demo only.
f8592e95890f Initial revision
claus
parents:
diff changeset
    24
    This class may be changed/removed/replaced without notice.
f8592e95890f Initial revision
claus
parents:
diff changeset
    25
"
f8592e95890f Initial revision
claus
parents:
diff changeset
    26
!
f8592e95890f Initial revision
claus
parents:
diff changeset
    27
f8592e95890f Initial revision
claus
parents:
diff changeset
    28
examples
f8592e95890f Initial revision
claus
parents:
diff changeset
    29
"
f8592e95890f Initial revision
claus
parents:
diff changeset
    30
    |plug|
f8592e95890f Initial revision
claus
parents:
diff changeset
    31
f8592e95890f Initial revision
claus
parents:
diff changeset
    32
    plug := Plug new.
f8592e95890f Initial revision
claus
parents:
diff changeset
    33
    plug respondTo:#foo  with:[Transcript showCr:'received foo'].
f8592e95890f Initial revision
claus
parents:
diff changeset
    34
    plug respondTo:#foo: with:[:arg | Transcript showCr:'received foo: ', arg printString].
f8592e95890f Initial revision
claus
parents:
diff changeset
    35
f8592e95890f Initial revision
claus
parents:
diff changeset
    36
    plug foo.
f8592e95890f Initial revision
claus
parents:
diff changeset
    37
    plug foo:'some argument'
f8592e95890f Initial revision
claus
parents:
diff changeset
    38
"
f8592e95890f Initial revision
claus
parents:
diff changeset
    39
! !
f8592e95890f Initial revision
claus
parents:
diff changeset
    40
f8592e95890f Initial revision
claus
parents:
diff changeset
    41
!Plug class methodsFor:'instance creation'!
f8592e95890f Initial revision
claus
parents:
diff changeset
    42
f8592e95890f Initial revision
claus
parents:
diff changeset
    43
new
f8592e95890f Initial revision
claus
parents:
diff changeset
    44
    ^ super basicNew privateInitialize
f8592e95890f Initial revision
claus
parents:
diff changeset
    45
! !
f8592e95890f Initial revision
claus
parents:
diff changeset
    46
f8592e95890f Initial revision
claus
parents:
diff changeset
    47
!Plug methodsFor:'message sending'!
f8592e95890f Initial revision
claus
parents:
diff changeset
    48
f8592e95890f Initial revision
claus
parents:
diff changeset
    49
doesNotUnderstand:aMessage
f8592e95890f Initial revision
claus
parents:
diff changeset
    50
    |block|
f8592e95890f Initial revision
claus
parents:
diff changeset
    51
f8592e95890f Initial revision
claus
parents:
diff changeset
    52
    block := simulatedProtocol at:aMessage selector ifAbsent:[].
f8592e95890f Initial revision
claus
parents:
diff changeset
    53
    block isNil ifTrue:[
f8592e95890f Initial revision
claus
parents:
diff changeset
    54
        ^ super doesNotUnderstand:aMessage
f8592e95890f Initial revision
claus
parents:
diff changeset
    55
    ].
f8592e95890f Initial revision
claus
parents:
diff changeset
    56
    ^ block valueWithArguments:(aMessage arguments)
f8592e95890f Initial revision
claus
parents:
diff changeset
    57
! !
f8592e95890f Initial revision
claus
parents:
diff changeset
    58
55
409211feffa2 *** empty log message ***
claus
parents: 54
diff changeset
    59
!Plug methodsFor:'protocol definition'!
409211feffa2 *** empty log message ***
claus
parents: 54
diff changeset
    60
409211feffa2 *** empty log message ***
claus
parents: 54
diff changeset
    61
respondTo:aSelector with:aBlock
409211feffa2 *** empty log message ***
claus
parents: 54
diff changeset
    62
    simulatedProtocol at:aSelector put:aBlock
409211feffa2 *** empty log message ***
claus
parents: 54
diff changeset
    63
! !
409211feffa2 *** empty log message ***
claus
parents: 54
diff changeset
    64
54
f8592e95890f Initial revision
claus
parents:
diff changeset
    65
!Plug methodsFor:'initialization'!
f8592e95890f Initial revision
claus
parents:
diff changeset
    66
f8592e95890f Initial revision
claus
parents:
diff changeset
    67
privateInitialize
f8592e95890f Initial revision
claus
parents:
diff changeset
    68
    "this method is NOT called initialize to allow plugging that
f8592e95890f Initial revision
claus
parents:
diff changeset
    69
     selector ..."
f8592e95890f Initial revision
claus
parents:
diff changeset
    70
f8592e95890f Initial revision
claus
parents:
diff changeset
    71
    simulatedProtocol := IdentityDictionary new.
f8592e95890f Initial revision
claus
parents:
diff changeset
    72
! !
f8592e95890f Initial revision
claus
parents:
diff changeset
    73