terminals/stx_goodies_xtreams_terminals.st
changeset 137 ef21c6ae6329
parent 109 9587e2df7029
--- a/terminals/stx_goodies_xtreams_terminals.st	Sun Apr 07 17:49:07 2013 -0400
+++ b/terminals/stx_goodies_xtreams_terminals.st	Sun Nov 17 00:08:45 2013 -0500
@@ -49,11 +49,11 @@
 Single argument blocks can be used as write terminals.
 {{{
 	"Transcript as an xtream"
-	[ :x | Transcript nextPut: x ] writing write: ''Hello World!!''
+	[ :x | Transcript nextPut: x ] writing write: ''Hello World!!!!''
 }}}
 {{{
 	"/dev/null"
-	[ :x | ] writing write: ''Hello World!!''
+	[ :x | ] writing write: ''Hello World!!!!''
 }}}
 Combined with stream transforms like #doing: and #limiting:, a block closure stream can be used to transform arbitrary loop into a stream and the streaming API can provide fine grained control over the execution of the loop body.
 
@@ -75,7 +75,7 @@
 	| file |
 	file := ''/dev/shm/xtreams-test'' asFilename.
 	[       file writing write: ''Hello''; close.
-		file appending write: '' World!!''; close.
+		file appending write: '' World!!!!''; close.
 		file contentsOfEntireFile.
 	] ensure: [ file delete ]
 }}}
@@ -162,7 +162,7 @@
 	buffer := CIntegerType unsignedChar malloc: 50.
 	[       buffer writing
 			length: 50;
-			write: ''Hello World!!''.
+			write: ''Hello World!!!!''.
 		buffer reading
 			length: 12;
 			contentsSpecies: ByteString;
@@ -184,6 +184,24 @@
     )
 !
 
+mandatoryPreRequisites
+    "list all required mandatory packages.
+     Packages are mandatory, if they contain superclasses of the package's classes
+     or classes which are extended by this package.
+     This list can be maintained manually or (better) generated and
+     updated by scanning the superclass hierarchies
+     (the browser has a menu function for that)"
+
+    ^ #(
+        #'stx:goodies/xtreams/core'    "Xtreams::Buffer - extended "
+        #'stx:goodies/xtreams/support'    "XtreamsPool - shared pool used by Xtreams::ExternalReadStream "
+        #'stx:libbasic'    "Block - extended "
+        #'stx:libbasic2'    "Queue - extended "
+        #'stx:libview'    "DeviceGraphicsContext - extended "
+        #'stx:libwidg'    "EditTextView - extended "
+    )
+!
+
 preRequisites
     "list all required packages.
      This list can be maintained manually or (better) generated and
@@ -197,6 +215,29 @@
 	#'stx:libbasic'    "Object - superclass of Xtreams::PointerWriteStream "
 	#'stx:libbasic2'    "Queue - superclass of extended SharedQueue "
     )
+!
+
+referencedPreRequisites
+    "list all packages containing classes referenced by the packages's members.
+     This list can be maintained manually or (better) generated and
+     updated by looking for global variable accesses
+     (the browser has a menu function for that)
+     However, often too much is found, and you may want to explicitely
+     exclude individual packages in the #excludedFromPreRequisites method."
+
+    ^ #(
+    )
+!
+
+subProjects
+    "list packages which are known as subprojects.
+     The generated makefile will enter those and make there as well.
+     However: they are not forced to be loaded when a package is loaded;
+     for those, redefine requiredPrerequisites"
+
+    ^ #(
+        #'stx:goodies/xtreams/terminals/tests'
+    )
 ! !
 
 !stx_goodies_xtreams_terminals class methodsFor:'description - contents'!
@@ -208,24 +249,24 @@
      Attributes are: #autoload or #<os> where os is one of win32, unix,..."
 
     ^ #(
-	"<className> or (<className> attributes...) in load order"
-	#'Xtreams::BlockClosureGenerateStream'
-	#'Xtreams::BlockClosureReadStream'
-	#'Xtreams::BlockClosureWriteStream'
-	#'Xtreams::BufferReadStream'
-	#'Xtreams::BufferWriteStream'
-	#'Xtreams::BufferedWriteStream'
-	#'Xtreams::CollectionWriteStream'
-	#'Xtreams::ExternalReadStream'
-	#'Xtreams::ExternalWriteStream'
-	#'Xtreams::FileWriteStream'
-	#'Xtreams::NullWriteStream'
-	#'Xtreams::SequenceableCollectionReadStream'
-	#'Xtreams::SequenceableCollectionWriteStream'
-	#'Xtreams::SharedQueueReadStream'
-	#'Xtreams::SharedQueueWriteStream'
-	#'stx_goodies_xtreams_terminals'
-	#'Xtreams::FileReadStream'
+        "<className> or (<className> attributes...) in load order"
+        #'Xtreams::BlockClosureGenerateStream'
+        #'Xtreams::BlockClosureReadStream'
+        #'Xtreams::BlockClosureWriteStream'
+        #'Xtreams::BufferReadStream'
+        #'Xtreams::BufferWriteStream'
+        #'Xtreams::BufferedWriteStream'
+        #'Xtreams::CollectionWriteStream'
+        #'Xtreams::ExternalReadStream'
+        #'Xtreams::ExternalWriteStream'
+        #'Xtreams::FileWriteStream'
+        #'Xtreams::NullWriteStream'
+        #'Xtreams::SequenceableCollectionReadStream'
+        #'Xtreams::SequenceableCollectionWriteStream'
+        #'Xtreams::SharedQueueReadStream'
+        #'Xtreams::SharedQueueWriteStream'
+        #'stx_goodies_xtreams_terminals'
+        #'Xtreams::FileReadStream'
     )
 !
 
@@ -234,31 +275,38 @@
      Entries are 2-element array literals, consisting of class-name and selector."
 
     ^ #(
-	Block reading
-	Block writing
-	Collection writing
-	Filename appending
-	Filename reading
-	Filename writing
-	Random reading
-	SequenceableCollection reading
-	SequenceableCollection writing
-	SharedQueue reading
-	SharedQueue writing
-	Socket accepting
-	Socket reading
-	Socket writing
-	UndefinedObject writing
-	#'Xtreams::Buffer' reading
-	#'Xtreams::Buffer' writing
-	#'Xtreams::WriteStream' buffering:
-	PipeStream isActive
-	PipeStream reading
-	PipeStream writing
-	TextCollector writing
+        Block reading
+        Block writing
+        Collection writing
+        Filename appending
+        Filename reading
+        Filename writing
+        Random reading
+        SequenceableCollection reading
+        SequenceableCollection writing
+        SharedQueue reading
+        SharedQueue writing
+        Socket accepting
+        Socket reading
+        Socket writing
+        UndefinedObject writing
+        #'Xtreams::Buffer' reading
+        #'Xtreams::Buffer' writing
+        #'Xtreams::WriteStream' buffering:
+        PipeStream isActive
+        PipeStream reading
+        PipeStream writing
+        TextCollector writing
     )
 ! !
 
+!stx_goodies_xtreams_terminals class methodsFor:'description - project information'!
+
+legalCopyright
+
+        ^'Copyright 2010-2013 Cincom Systems, Martin Kobetic and Michael Lucas-Smith'
+! !
+
 !stx_goodies_xtreams_terminals class methodsFor:'documentation'!
 
 version_HG