author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Fri, 13 Jun 2014 07:27:24 +0100 | |
changeset 13 | 45ec9353003f |
parent 12 | 568a2971c977 |
child 18 | 6bf3d5c400d1 |
permissions | -rw-r--r-- |
4
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
1 |
"{ Package: 'jv:libgdbs' }" |
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
2 |
|
6 | 3 |
GDBEvent subclass:#GDBAsyncEvent |
4
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
4 |
instanceVariableNames:'type data' |
13
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
5 |
classVariableNames:'EventTypeToEventClassMap' |
4
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
6 |
poolDictionaries:'' |
6 | 7 |
category:'GDB-Core-Events' |
4
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
8 |
! |
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
9 |
|
6 | 10 |
|
13
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
11 |
!GDBAsyncEvent class methodsFor:'initialization'! |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
12 |
|
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
13 |
initialize |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
14 |
"Invoked at system start or when the class is dynamically loaded." |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
15 |
|
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
16 |
EventTypeToEventClassMap := Dictionary new. |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
17 |
self allSubclassesDo:[:cls| |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
18 |
| type | |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
19 |
|
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
20 |
type := cls basicNew type. |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
21 |
type notNil ifTrue:[ |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
22 |
EventTypeToEventClassMap at: type put: cls. |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
23 |
]. |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
24 |
] |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
25 |
|
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
26 |
"Modified: / 13-06-2014 / 07:11:20 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
27 |
! ! |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
28 |
|
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
29 |
!GDBAsyncEvent class methodsFor:'accessing'! |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
30 |
|
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
31 |
eventClassForType: type |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
32 |
| eventClassName eventClass | |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
33 |
|
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
34 |
eventClass := EventTypeToEventClassMap at: type ifAbsent:[ |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
35 |
eventClassName := (String streamContents:[ :out | |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
36 |
| in | |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
37 |
|
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
38 |
out nextPutAll: 'GDB'. |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
39 |
in := type readStream. |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
40 |
out nextPut: in next asUppercase. |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
41 |
[ in atEnd ] whileFalse:[ |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
42 |
| c | |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
43 |
|
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
44 |
c := in next. |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
45 |
c == $- ifTrue:[ |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
46 |
c := in next asUppercase. |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
47 |
]. |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
48 |
out nextPut: c. |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
49 |
]. |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
50 |
out nextPutAll: 'Event'. |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
51 |
]) asSymbol. |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
52 |
|
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
53 |
eventClass := Smalltalk at: eventClassName asSymbol. |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
54 |
eventClass isNil ifTrue:[ |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
55 |
Smalltalk isStandAloneApp ifFalse:[ |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
56 |
eventClass := self subclass:eventClassName |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
57 |
instanceVariableNames:'' |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
58 |
classVariableNames:'' |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
59 |
poolDictionaries:'' |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
60 |
category:'GDB-Core-Events'. |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
61 |
eventClass compile: (String streamContents: [ :s|s nextPutAll:'type'; cr; tab; nextPutAll:'^ '; nextPutAll: type storeString ]) classified: 'accessing'. |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
62 |
] ifTrue:[ |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
63 |
eventClass := self. |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
64 |
] |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
65 |
]. |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
66 |
eventClass |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
67 |
]. |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
68 |
^ eventClass |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
69 |
|
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
70 |
"Created: / 12-06-2014 / 17:03:36 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
71 |
"Modified: / 13-06-2014 / 07:12:31 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
72 |
! ! |
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
73 |
|
6 | 74 |
!GDBAsyncEvent class methodsFor:'queries'! |
4
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
75 |
|
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
76 |
isAbstract |
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
77 |
"Return if this class is an abstract class. |
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
78 |
True is returned here for myself only; false for subclasses. |
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
79 |
Abstract subclasses must redefine again." |
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
80 |
|
6 | 81 |
^ self == GDBAsyncEvent. |
82 |
||
83 |
"Modified: / 02-06-2014 / 22:20:15 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
4
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
84 |
! ! |
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
85 |
|
6 | 86 |
!GDBAsyncEvent methodsFor:'accessing'! |
4
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
87 |
|
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
88 |
data |
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
89 |
^ data |
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
90 |
! |
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
91 |
|
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
92 |
data:anArray |
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
93 |
data := anArray. |
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
94 |
! |
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
95 |
|
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
96 |
type |
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
97 |
^ type |
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
98 |
! |
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
99 |
|
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
100 |
type:aString |
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
101 |
type := aString. |
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
102 |
! ! |
62366cc0fd95
Added some events + fixed parser to parse a simple session.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
103 |
|
12
568a2971c977
Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
6
diff
changeset
|
104 |
!GDBAsyncEvent methodsFor:'displaying'! |
568a2971c977
Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
6
diff
changeset
|
105 |
|
568a2971c977
Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
6
diff
changeset
|
106 |
displayString |
568a2971c977
Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
6
diff
changeset
|
107 |
^ type |
568a2971c977
Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
6
diff
changeset
|
108 |
|
568a2971c977
Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
6
diff
changeset
|
109 |
"Created: / 12-06-2014 / 01:15:11 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
568a2971c977
Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
6
diff
changeset
|
110 |
! ! |
568a2971c977
Generated classes for MI commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
6
diff
changeset
|
111 |
|
6 | 112 |
!GDBAsyncEvent class methodsFor:'documentation'! |
113 |
||
114 |
version_HG |
|
115 |
||
116 |
^ '$Changeset: <not expanded> $' |
|
117 |
! ! |
|
118 |
||
13
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
119 |
|
45ec9353003f
Added classes for each async event type.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
12
diff
changeset
|
120 |
GDBAsyncEvent initialize! |