eXept Software AG Logo

Smalltalk/X Webserver

Documentation of class 'WordArray':

Home

Documentation
www.exept.de
Everywhere
for:
[back]

Class: WordArray


Inheritance:

   Object
   |
   +--Collection
      |
      +--SequenceableCollection
         |
         +--ArrayedCollection
            |
            +--UninterpretedBytes
               |
               +--AbstractNumberVector
                  |
                  +--UnboxedIntegerArray
                     |
                     +--WordArray

Package:
stx:libbasic
Category:
Collections-Arrayed
Version:
rev: 1.3 date: 2019/03/24 11:26:53
user: cg
file: WordArray.st directory: libbasic
module: stx stc-classLibrary: libbasic
Author:
Claus Gittinger

Description:


WordArrays store integers in the range 0..16rFFFF.
In contrast to normal arrays (which store pointers to their elements),
wordArrays store the values in a dense & compact way. 
Since the representation fits the underlying C-language systems representation
of unsigned int16's, this is also useful to pass bulk data to c primitive code.

WordArrays can be used to hold bulk integer data in a more compact way.
    For example:
        Array new:100000 withAll:1
    requires 400k of object memory;

    in contrast,
        WordArray new:100000 withAll:1
    only requires half of it.

[memory requirements:]
    OBJ-HEADER + (size * 2)


[caveat:]
    should probably be renamed to UnsignedInt16Array


Related information:

    ByteArray
    BooleanArray
    FloatArray
    DoubleArray
    Array
    SignedWordArray

Class protocol:

queries
o  elementByteSize
for bit-like containers, return the number of bytes stored per element.
Here, 2 is returned

o  maxVal
the maximum value which can be stored in instances of me.
For WordArrays, this is 16rFFFF (largest 16bit unsigned int)

o  minVal
the minimum value which can be stored in instances of me.
For WordArrays, this is 0


Instance protocol:

accessing
o  unsignedInt16At: index MSB: msb
return the 2-bytes starting at index as an (unsigned) Integer.
The index is a smalltalk index (i.e. 1-based).
The value is retrieved MSB (high 8 bits at lower index) if msb is true;
LSB-first (i.e. low 8-bits at lower byte index) if it's false.
Notice:
the index is a byte index; thus, this allows for unaligned access to
words on any boundary



ST/X 7.2.0.0; WebServer 1.670 at bd0aa1f87cdd.unknown:8081; Thu, 28 Mar 2024 11:24:47 GMT