GDBSessionRecorder.st
changeset 25 58e042a191a9
parent 24 98ff50f8a25d
child 78 c24e7d8bc881
--- a/GDBSessionRecorder.st	Mon Jun 23 09:45:16 2014 +0100
+++ b/GDBSessionRecorder.st	Tue Jun 24 00:55:57 2014 +0100
@@ -1,56 +1,63 @@
 "{ Package: 'jv:libgdbs' }"
 
 Object subclass:#GDBSessionRecorder
-	instanceVariableNames:'record commandBuffer responseBuffer'
+	instanceVariableNames:'record buffer'
 	classVariableNames:''
 	poolDictionaries:'GDBDebugFlags'
 	category:'GDB-Private-Simulator'
 !
 
+!GDBSessionRecorder class methodsFor:'instance creation'!
+
+new
+    "return an initialized instance"
+
+    ^ self basicNew initialize.
+! !
+
+!GDBSessionRecorder methodsFor:'initialization'!
+
+initialize
+    "Invoked when a new instance is created."
+
+    "/ please change as required (and remove this comment)
+    record := GDBSessionRecord new.
+    buffer := (String new: 100) writeStream.
+    "/ responseBuffer := nil.
+
+    "/ super initialize.   -- commented since inherited method does nothing
+
+    "Modified: / 24-06-2014 / 00:10:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !GDBSessionRecorder methodsFor:'recording'!
 
 recordCommand: command
-    commandBuffer := WriteStream new.
-    commandBuffer nextPutAll: command.
+    record >>> command
 
     "Created: / 22-06-2014 / 21:39:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 24-06-2014 / 00:36:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 recordResponse: aString
-    responseBuffer isNil ifTrue:[ 
-        responseBuffer := CharacterWriteStream new.
-    ].
-    responseBuffer nextPutAll: aString
+    buffer nextPutAll: aString
 
     "Created: / 22-06-2014 / 21:56:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 24-06-2014 / 00:10:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 recordResponseChar: aCharacter
-    responseBuffer isNil ifTrue:[ 
-        responseBuffer := String new writeStream.
-    ].
-    responseBuffer nextPut: aCharacter
+    buffer nextPut: aCharacter
 
     "Created: / 22-06-2014 / 21:42:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 23-06-2014 / 09:23:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 24-06-2014 / 00:10:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 recordResponseEnd
-    | cmd resp |    
-
-    record isNil ifTrue:[ 
-        record := OrderedCollection new writeStream.
-    ].
-
-    commandBuffer notNil ifTrue:[
-        cmd := commandBuffer contents.
-        commandBuffer := nil.
-    ].
-    resp := responseBuffer contents.
-    responseBuffer := nil.
-    record nextPut: cmd -> resp.
+    record <<< buffer contents.
+    buffer reset.
 
     "Created: / 22-06-2014 / 21:54:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 23-06-2014 / 09:24:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 24-06-2014 / 00:36:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !