transforms/Xtreams__ASCIIEncoder.st
author joe
Tue, 19 Mar 2013 23:58:40 -0400
changeset 116 fa5b4c9f582d
parent 111 44ac233b2f83
permissions -rw-r--r--
- Xtreams::EncodeReadStream class: Xtreams::EncodeReadStream changed: #get #read:into:at: - Xtreams::ASCIIEncoder class: Xtreams::ASCIIEncoder - Xtreams::TransformReadStream class: Xtreams::TransformReadStream - Xtreams::ObjectReadStream class: Xtreams::ObjectReadStream - Xtreams::InterpretedReadStream class: Xtreams::InterpretedReadStream - stx_goodies_xtreams_transforms class: stx_goodies_xtreams_transforms - Xtreams::DuplicateWriteStream class: Xtreams::DuplicateWriteStream - Xtreams::EncodeWriteStream class: Xtreams::EncodeWriteStream changed: #setLineEndCRLF #setLineEndLF - Xtreams::ObjectAnalyseStream class: Xtreams::ObjectAnalyseStream - Xtreams::ObjectWriteStream class: Xtreams::ObjectWriteStream - Xtreams::TransformWriteStream class: Xtreams::TransformWriteStream - Xtreams::CollectReadStream class: Xtreams::CollectReadStream - Xtreams::InterpretedWriteStream class: Xtreams::InterpretedWriteStream - Xtreams::DuplicateReadStream class: Xtreams::DuplicateReadStream - Xtreams::ObjectMarshaler class: Xtreams::ObjectMarshaler - Xtreams::ISO8859L1Encoder class: Xtreams::ISO8859L1Encoder - Xtreams::CollectWriteStream class: Xtreams::CollectWriteStream - Xtreams::MessagePackMarshaler class: Xtreams::MessagePackMarshaler - extensions ...
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/xtreams/transforms' }"
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
     2
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
     3
"{ NameSpace: Xtreams }"
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
     4
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
     5
Encoder subclass:#ASCIIEncoder
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
     6
	instanceVariableNames:''
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
     7
	classVariableNames:''
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
     8
	poolDictionaries:''
27
2cc5a8a3ca14 added XtreamsPool to fix DefaultBufferSize; set proper category names
mkobetic
parents: 10
diff changeset
     9
	category:'Xtreams-Transforms'
10
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    10
!
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    11
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    12
ASCIIEncoder comment:'Implements ASCII encoding.
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    13
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    14
'
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    15
!
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    16
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    17
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    18
!ASCIIEncoder class methodsFor:'class initialization'!
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    19
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    20
initialize
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    21
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    22
	self encoders
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    23
		at: #ascii put: self new;
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    24
		at: #ASCII put: self new
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    25
! !
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    26
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    27
!ASCIIEncoder methodsFor:'accessing'!
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    28
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    29
decodeFrom: aReadStream
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    30
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    31
	| value |
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    32
	^(value := aReadStream get) < 128
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    33
		ifTrue: [ Character value: value ]
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    34
		ifFalse: [ self error: 'Illegal value!!' ]
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    35
!
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    36
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    37
encode: aCharacter on: aWriteStream
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    38
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    39
	| value |
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    40
	(value := aCharacter asInteger) < 128
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    41
		ifTrue: [ aWriteStream put: value ]
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    42
		ifFalse: [ self error: 'Illegal character!!' ]
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    43
! !
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    44
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    45
!ASCIIEncoder class methodsFor:'documentation'!
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    46
111
44ac233b2f83 * removed namespace from pool references and stray extension methods
joe
parents: 72
diff changeset
    47
version_HG
44ac233b2f83 * removed namespace from pool references and stray extension methods
joe
parents: 72
diff changeset
    48
44ac233b2f83 * removed namespace from pool references and stray extension methods
joe
parents: 72
diff changeset
    49
    ^ '$Changeset: <not expanded> $'
44ac233b2f83 * removed namespace from pool references and stray extension methods
joe
parents: 72
diff changeset
    50
!
44ac233b2f83 * removed namespace from pool references and stray extension methods
joe
parents: 72
diff changeset
    51
10
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    52
version_SVN
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    53
    ^ '$Id$'
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    54
! !
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    55
111
44ac233b2f83 * removed namespace from pool references and stray extension methods
joe
parents: 72
diff changeset
    56
10
3813193bdf4e first cut
Martin Kobetic <mkobetic@gmail.com>
parents:
diff changeset
    57
ASCIIEncoder initialize!