--- 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