GDBAsyncEvent.st
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--
Added classes for each async event type. i.e., for breakpoint-inserted a GDBBreakpointInsertedEvent is generated. f the class does not exists it is either generated (when in development mode) or an event of base type is emmited (in this case GDBNotificationEvent).
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
d935bc59f6f4 Removed useless MI prefix
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
     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
d935bc59f6f4 Removed useless MI prefix
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
     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
d935bc59f6f4 Removed useless MI prefix
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    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
d935bc59f6f4 Removed useless MI prefix
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    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
d935bc59f6f4 Removed useless MI prefix
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    81
    ^ self == GDBAsyncEvent.
d935bc59f6f4 Removed useless MI prefix
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    82
d935bc59f6f4 Removed useless MI prefix
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    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
d935bc59f6f4 Removed useless MI prefix
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    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
d935bc59f6f4 Removed useless MI prefix
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   112
!GDBAsyncEvent class methodsFor:'documentation'!
d935bc59f6f4 Removed useless MI prefix
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   113
d935bc59f6f4 Removed useless MI prefix
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   114
version_HG
d935bc59f6f4 Removed useless MI prefix
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   115
d935bc59f6f4 Removed useless MI prefix
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   116
    ^ '$Changeset: <not expanded> $'
d935bc59f6f4 Removed useless MI prefix
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   117
! !
d935bc59f6f4 Removed useless MI prefix
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   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!