SharedPool.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 21 Mar 2012 17:45:38 +0000
branchjv
changeset 17928 8e8dad2e6269
parent 17921 4069fe8e9039
child 17930 26e05ec9df57
permissions -rw-r--r--
Merged with /trunk
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8728
d70396dc4e96 copyright
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
     1
"
d70396dc4e96 copyright
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
     2
 COPYRIGHT (c) 2004 by eXept Software AG
d70396dc4e96 copyright
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
     3
              All Rights Reserved
d70396dc4e96 copyright
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
     4
d70396dc4e96 copyright
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
     5
 This software is furnished under a license and may be used
d70396dc4e96 copyright
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
     6
 only in accordance with the terms of that license and with the
d70396dc4e96 copyright
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
d70396dc4e96 copyright
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
     8
 be provided or otherwise made available to, or used by, any
d70396dc4e96 copyright
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
     9
 other person.  No title to or ownership of the software is
d70396dc4e96 copyright
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
    10
 hereby transferred.
d70396dc4e96 copyright
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
    11
"
8538
68e006f46d87 initial checkin
ca
parents:
diff changeset
    12
"{ Package: 'stx:libbasic' }"
68e006f46d87 initial checkin
ca
parents:
diff changeset
    13
68e006f46d87 initial checkin
ca
parents:
diff changeset
    14
Object subclass:#SharedPool
68e006f46d87 initial checkin
ca
parents:
diff changeset
    15
	instanceVariableNames:''
68e006f46d87 initial checkin
ca
parents:
diff changeset
    16
	classVariableNames:''
68e006f46d87 initial checkin
ca
parents:
diff changeset
    17
	poolDictionaries:''
68e006f46d87 initial checkin
ca
parents:
diff changeset
    18
	category:'Kernel-Classes'
68e006f46d87 initial checkin
ca
parents:
diff changeset
    19
!
68e006f46d87 initial checkin
ca
parents:
diff changeset
    20
68e006f46d87 initial checkin
ca
parents:
diff changeset
    21
!SharedPool class methodsFor:'documentation'!
68e006f46d87 initial checkin
ca
parents:
diff changeset
    22
8728
d70396dc4e96 copyright
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
    23
copyright
d70396dc4e96 copyright
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
    24
"
d70396dc4e96 copyright
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
    25
 COPYRIGHT (c) 2004 by eXept Software AG
d70396dc4e96 copyright
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
    26
              All Rights Reserved
d70396dc4e96 copyright
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
    27
d70396dc4e96 copyright
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
    28
 This software is furnished under a license and may be used
d70396dc4e96 copyright
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
    29
 only in accordance with the terms of that license and with the
d70396dc4e96 copyright
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
    30
 inclusion of the above copyright notice.   This software may not
d70396dc4e96 copyright
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
    31
 be provided or otherwise made available to, or used by, any
d70396dc4e96 copyright
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
    32
 other person.  No title to or ownership of the software is
d70396dc4e96 copyright
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
    33
 hereby transferred.
d70396dc4e96 copyright
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
    34
"
d70396dc4e96 copyright
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
    35
!
d70396dc4e96 copyright
Claus Gittinger <cg@exept.de>
parents: 8551
diff changeset
    36
8538
68e006f46d87 initial checkin
ca
parents:
diff changeset
    37
documentation
68e006f46d87 initial checkin
ca
parents:
diff changeset
    38
"
68e006f46d87 initial checkin
ca
parents:
diff changeset
    39
    A shared pool represents a set of bindings which are accessible to all classes
68e006f46d87 initial checkin
ca
parents:
diff changeset
    40
    which import the pool in its 'pool dictionaries'.
68e006f46d87 initial checkin
ca
parents:
diff changeset
    41
    SharedPool is NOT a dictionary but rather a name space.
68e006f46d87 initial checkin
ca
parents:
diff changeset
    42
    Bindings are represented by 'class variables' - as long as we have no better way to represent
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17711
diff changeset
    43
    them at least. This is done to make stc happy (or at least, to not be forced to adapt it
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17711
diff changeset
    44
    to any new semantics).
8538
68e006f46d87 initial checkin
ca
parents:
diff changeset
    45
"
68e006f46d87 initial checkin
ca
parents:
diff changeset
    46
! !
68e006f46d87 initial checkin
ca
parents:
diff changeset
    47
17862
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    48
!SharedPool class methodsFor:'Compatibility-Squeak'!
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    49
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    50
bindingOf: varName
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    51
    "Answer the binding of some variable resolved in the scope of the receiver"
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    52
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    53
    | aSymbol binding |
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    54
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    55
    "/ self shouldImplement.       "not yet finished"
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    56
    aSymbol := varName asSymbol.
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    57
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    58
    "First look in classVar dictionary."
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    59
    binding := self classPool bindingOf: aSymbol.
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    60
    binding notNil ifTrue:[^binding].
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    61
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    62
    "Next look in shared pools."
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    63
    self sharedPools do:[:pool |
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    64
        binding := pool bindingOf: aSymbol.
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    65
        binding notNil ifTrue:[^binding].
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    66
    ].
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    67
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    68
    "subclassing and environment are not preserved"
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    69
    ^nil
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    70
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    71
    "Modified: / 12-09-2011 / 09:40:36 / cg"
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    72
!
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    73
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    74
bindingsDo: aBlock
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    75
    self classVarNames do:[:eachKey |
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    76
        aBlock value:(eachKey -> (self classVarAt:eachKey))
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    77
    ].
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    78
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    79
    "Modified: / 12-09-2011 / 09:42:00 / cg"
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    80
! !
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
    81
9091
35b746ada800 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8728
diff changeset
    82
!SharedPool class methodsFor:'Compatibility-V''Age'!
35b746ada800 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8728
diff changeset
    83
35b746ada800 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8728
diff changeset
    84
declareConstant:constantName value:value
35b746ada800 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8728
diff changeset
    85
    self == SharedPool ifTrue:[ self error ].
35b746ada800 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8728
diff changeset
    86
35b746ada800 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8728
diff changeset
    87
    (self classVarNames includes:constantName) ifFalse:[
35b746ada800 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8728
diff changeset
    88
        self addClassVarName:constantName
35b746ada800 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8728
diff changeset
    89
    ].
35b746ada800 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8728
diff changeset
    90
35b746ada800 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8728
diff changeset
    91
    self classVarAt:constantName put:value.
17921
4069fe8e9039 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17911
diff changeset
    92
!
4069fe8e9039 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17911
diff changeset
    93
4069fe8e9039 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17911
diff changeset
    94
declareVariable:varName
4069fe8e9039 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17911
diff changeset
    95
    self == SharedPool ifTrue:[ self error ].
4069fe8e9039 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17911
diff changeset
    96
4069fe8e9039 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17911
diff changeset
    97
    (self classVarNames includes:varName) ifFalse:[
4069fe8e9039 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17911
diff changeset
    98
        self addClassVarName:varName
4069fe8e9039 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17911
diff changeset
    99
    ].
4069fe8e9039 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17911
diff changeset
   100
4069fe8e9039 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17911
diff changeset
   101
    "Created: / 07-02-2012 / 15:57:35 / cg"
9091
35b746ada800 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8728
diff changeset
   102
! !
35b746ada800 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8728
diff changeset
   103
17815
956b46750806 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17814
diff changeset
   104
!SharedPool class methodsFor:'code generation'!
956b46750806 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17814
diff changeset
   105
956b46750806 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17814
diff changeset
   106
initializeFrom:aDictionary
956b46750806 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17814
diff changeset
   107
    "given a dictionary, generate my classvars and the init code"
956b46750806 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17814
diff changeset
   108
956b46750806 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17814
diff changeset
   109
    |sortedNames code|
956b46750806 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17814
diff changeset
   110
956b46750806 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17814
diff changeset
   111
    sortedNames := aDictionary keys asSortedCollection.
956b46750806 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17814
diff changeset
   112
    self addClassVarNames:sortedNames.
956b46750806 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17814
diff changeset
   113
956b46750806 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17814
diff changeset
   114
    code := String streamContents:[:s |
956b46750806 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17814
diff changeset
   115
        s nextPutLine:'initialize'.
956b46750806 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17814
diff changeset
   116
        sortedNames do:[:k |
956b46750806 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17814
diff changeset
   117
            |v|
956b46750806 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17814
diff changeset
   118
956b46750806 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17814
diff changeset
   119
            v := aDictionary at:k.
956b46750806 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17814
diff changeset
   120
            s nextPutLine:('    %1 := %2.' bindWith:k with:v storeString).
956b46750806 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17814
diff changeset
   121
        ].
956b46750806 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17814
diff changeset
   122
    ].
956b46750806 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17814
diff changeset
   123
    self class compile:code classified:'initialization'
956b46750806 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17814
diff changeset
   124
956b46750806 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17814
diff changeset
   125
    "
956b46750806 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17814
diff changeset
   126
     OLEStatusCodeConstants initializeFrom:aDictionary
956b46750806 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17814
diff changeset
   127
    "
956b46750806 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17814
diff changeset
   128
956b46750806 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17814
diff changeset
   129
    "Created: / 21-12-2010 / 17:58:25 / cg"
956b46750806 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17814
diff changeset
   130
    "Modified: / 15-01-2011 / 14:20:58 / cg"
956b46750806 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17814
diff changeset
   131
! !
956b46750806 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17814
diff changeset
   132
17928
8e8dad2e6269 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17921
diff changeset
   133
!SharedPool class methodsFor:'dictionary protocol'!
8e8dad2e6269 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17921
diff changeset
   134
8e8dad2e6269 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17921
diff changeset
   135
do:aBlock
8e8dad2e6269 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17921
diff changeset
   136
    "enumerate all values"
8e8dad2e6269 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17921
diff changeset
   137
8e8dad2e6269 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17921
diff changeset
   138
    ^ self keys do:[:key | aBlock value:(self at:key)]
8e8dad2e6269 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17921
diff changeset
   139
8e8dad2e6269 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17921
diff changeset
   140
    "Created: / 06-03-2012 / 17:07:54 / cg"
8e8dad2e6269 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17921
diff changeset
   141
!
8e8dad2e6269 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17921
diff changeset
   142
8e8dad2e6269 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17921
diff changeset
   143
keysAndValuesDo:aBlock
8e8dad2e6269 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17921
diff changeset
   144
    "enumerate all keys (= pool var names) with their value"
8e8dad2e6269 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17921
diff changeset
   145
8e8dad2e6269 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17921
diff changeset
   146
    ^ self keys do:[:key | aBlock value:key value:(self at:key)]
8e8dad2e6269 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17921
diff changeset
   147
8e8dad2e6269 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17921
diff changeset
   148
    "Created: / 06-03-2012 / 17:07:41 / cg"
8e8dad2e6269 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17921
diff changeset
   149
! !
8e8dad2e6269 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17921
diff changeset
   150
17807
06cc6c49e291 merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17795
diff changeset
   151
!SharedPool class methodsFor:'misc ui support'!
06cc6c49e291 merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17795
diff changeset
   152
06cc6c49e291 merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17795
diff changeset
   153
iconInBrowserSymbol
06cc6c49e291 merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17795
diff changeset
   154
    <resource: #programImage>
06cc6c49e291 merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17795
diff changeset
   155
06cc6c49e291 merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17795
diff changeset
   156
    self == SharedPool ifTrue:[^ super iconInBrowserSymbol].
06cc6c49e291 merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17795
diff changeset
   157
    ^ #sharedPoolBrowserIcon
06cc6c49e291 merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17795
diff changeset
   158
06cc6c49e291 merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17795
diff changeset
   159
    "Created: / 14-10-2010 / 12:04:32 / cg"
06cc6c49e291 merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17795
diff changeset
   160
! !
06cc6c49e291 merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17795
diff changeset
   161
8538
68e006f46d87 initial checkin
ca
parents:
diff changeset
   162
!SharedPool class methodsFor:'name lookup'!
68e006f46d87 initial checkin
ca
parents:
diff changeset
   163
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17711
diff changeset
   164
at:name
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17711
diff changeset
   165
    "retrieve a pool variable by name"
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17711
diff changeset
   166
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17711
diff changeset
   167
    ^ self at:name ifAbsent:[self errorKeyNotFound:name]
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17711
diff changeset
   168
!
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17711
diff changeset
   169
10853
72acafda369f dictionary compatible protocol added
Claus Gittinger <cg@exept.de>
parents: 9091
diff changeset
   170
at:name ifAbsent:aBlock
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17711
diff changeset
   171
    "retrieve a pool variable by name"
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17711
diff changeset
   172
10853
72acafda369f dictionary compatible protocol added
Claus Gittinger <cg@exept.de>
parents: 9091
diff changeset
   173
    (self includesKey:name) ifFalse:[^ aBlock value].
72acafda369f dictionary compatible protocol added
Claus Gittinger <cg@exept.de>
parents: 9091
diff changeset
   174
    ^ self classVarAt:name
72acafda369f dictionary compatible protocol added
Claus Gittinger <cg@exept.de>
parents: 9091
diff changeset
   175
!
72acafda369f dictionary compatible protocol added
Claus Gittinger <cg@exept.de>
parents: 9091
diff changeset
   176
17862
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
   177
at:name put:aValue
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
   178
    "set a pool variable by name"
8538
68e006f46d87 initial checkin
ca
parents:
diff changeset
   179
17862
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
   180
    ^ self classVarAt:name put:aValue
8538
68e006f46d87 initial checkin
ca
parents:
diff changeset
   181
17862
8a8ae3107950 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17846
diff changeset
   182
    "Created: / 08-09-2011 / 05:48:16 / cg"
8538
68e006f46d87 initial checkin
ca
parents:
diff changeset
   183
!
68e006f46d87 initial checkin
ca
parents:
diff changeset
   184
68e006f46d87 initial checkin
ca
parents:
diff changeset
   185
classBindingOf: varName
68e006f46d87 initial checkin
ca
parents:
diff changeset
   186
    "For initialization messages grant the regular scope"
68e006f46d87 initial checkin
ca
parents:
diff changeset
   187
11305
83f14d00b6a7 Change #halt: to #shouldImplement or #assert:
Stefan Vogel <sv@exept.de>
parents: 10853
diff changeset
   188
    self shouldImplement.       "not yet finished"
83f14d00b6a7 Change #halt: to #shouldImplement or #assert:
Stefan Vogel <sv@exept.de>
parents: 10853
diff changeset
   189
    ^ super bindingOf: varName
8551
de314b9f8fa3 sharedPools
ca
parents: 8538
diff changeset
   190
!
de314b9f8fa3 sharedPools
ca
parents: 8538
diff changeset
   191
17928
8e8dad2e6269 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17921
diff changeset
   192
keys
8e8dad2e6269 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17921
diff changeset
   193
    "retrieve all keys (= pool var names)"
8551
de314b9f8fa3 sharedPools
ca
parents: 8538
diff changeset
   194
de314b9f8fa3 sharedPools
ca
parents: 8538
diff changeset
   195
    ^ self classVarNames
de314b9f8fa3 sharedPools
ca
parents: 8538
diff changeset
   196
de314b9f8fa3 sharedPools
ca
parents: 8538
diff changeset
   197
    "
de314b9f8fa3 sharedPools
ca
parents: 8538
diff changeset
   198
     OpenGLConstants keys
de314b9f8fa3 sharedPools
ca
parents: 8538
diff changeset
   199
    "
17928
8e8dad2e6269 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17921
diff changeset
   200
8e8dad2e6269 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17921
diff changeset
   201
    "Modified (comment): / 06-03-2012 / 17:09:11 / cg"
10853
72acafda369f dictionary compatible protocol added
Claus Gittinger <cg@exept.de>
parents: 9091
diff changeset
   202
!
72acafda369f dictionary compatible protocol added
Claus Gittinger <cg@exept.de>
parents: 9091
diff changeset
   203
72acafda369f dictionary compatible protocol added
Claus Gittinger <cg@exept.de>
parents: 9091
diff changeset
   204
keysDo:aBlock
17928
8e8dad2e6269 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17921
diff changeset
   205
    "enumerate all keys (= pool var names)"
8e8dad2e6269 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17921
diff changeset
   206
10853
72acafda369f dictionary compatible protocol added
Claus Gittinger <cg@exept.de>
parents: 9091
diff changeset
   207
    ^ self keys do:aBlock
17928
8e8dad2e6269 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17921
diff changeset
   208
8e8dad2e6269 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17921
diff changeset
   209
    "Modified (comment): / 06-03-2012 / 17:08:54 / cg"
8551
de314b9f8fa3 sharedPools
ca
parents: 8538
diff changeset
   210
! !
de314b9f8fa3 sharedPools
ca
parents: 8538
diff changeset
   211
de314b9f8fa3 sharedPools
ca
parents: 8538
diff changeset
   212
!SharedPool class methodsFor:'printing & storing'!
de314b9f8fa3 sharedPools
ca
parents: 8538
diff changeset
   213
de314b9f8fa3 sharedPools
ca
parents: 8538
diff changeset
   214
displayString
de314b9f8fa3 sharedPools
ca
parents: 8538
diff changeset
   215
    "return a printed represenation - here, a reminder is appended,
de314b9f8fa3 sharedPools
ca
parents: 8538
diff changeset
   216
     that this is not a regular class"
de314b9f8fa3 sharedPools
ca
parents: 8538
diff changeset
   217
de314b9f8fa3 sharedPools
ca
parents: 8538
diff changeset
   218
    self == SharedPool ifTrue:[
de314b9f8fa3 sharedPools
ca
parents: 8538
diff changeset
   219
        ^ super displayString
de314b9f8fa3 sharedPools
ca
parents: 8538
diff changeset
   220
    ].
de314b9f8fa3 sharedPools
ca
parents: 8538
diff changeset
   221
    ^ self name , ' (* SharedPool *)'
8538
68e006f46d87 initial checkin
ca
parents:
diff changeset
   222
! !
68e006f46d87 initial checkin
ca
parents:
diff changeset
   223
68e006f46d87 initial checkin
ca
parents:
diff changeset
   224
!SharedPool class methodsFor:'queries'!
68e006f46d87 initial checkin
ca
parents:
diff changeset
   225
68e006f46d87 initial checkin
ca
parents:
diff changeset
   226
isSharedPool
68e006f46d87 initial checkin
ca
parents:
diff changeset
   227
    ^ self ~~ SharedPool
68e006f46d87 initial checkin
ca
parents:
diff changeset
   228
! !
68e006f46d87 initial checkin
ca
parents:
diff changeset
   229
68e006f46d87 initial checkin
ca
parents:
diff changeset
   230
!SharedPool class methodsFor:'documentation'!
68e006f46d87 initial checkin
ca
parents:
diff changeset
   231
68e006f46d87 initial checkin
ca
parents:
diff changeset
   232
version
17928
8e8dad2e6269 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17921
diff changeset
   233
    ^ '$Header: /cvs/stx/stx/libbasic/SharedPool.st,v 1.20 2012/03/06 16:09:32 cg Exp $'
17732
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17711
diff changeset
   234
!
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17711
diff changeset
   235
a1892eeca6c0 trunk merged into jv branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17711
diff changeset
   236
version_CVS
17928
8e8dad2e6269 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17921
diff changeset
   237
    ^ '§Header: /cvs/stx/stx/libbasic/SharedPool.st,v 1.20 2012/03/06 16:09:32 cg Exp §'
17865
598963c6ff8e Recommited from itself
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17862
diff changeset
   238
!
598963c6ff8e Recommited from itself
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17862
diff changeset
   239
598963c6ff8e Recommited from itself
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17862
diff changeset
   240
version_SVN
17928
8e8dad2e6269 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17921
diff changeset
   241
    ^ '$Id: SharedPool.st 10792 2012-03-21 17:45:38Z vranyj1 $'
17846
24edc476ac18 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17845
diff changeset
   242
! !