
gnu.x11.Data Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of escher Show documentation
Show all versions of escher Show documentation
Escher is a collection of libraries for X Window System written purely in Java.
The newest version!
package gnu.x11;
/**
* Efficient storage of byte array. Similar to "struct" in C/C++. No
* parsing.
*/
public class Data {
/** Sequential writing. */
public int index;
/** Lower bound. */
public int offset;
public byte [] data;
/** Writing. */
public Data () {}
/** Writing. */
public Data (int length) {
data = new byte [length];
}
/** Reading. */
public Data (byte [] data) {
this.data = data;
}
/** Reading. */
public Data (byte [] [] data) {
int s1 = data [0].length;
int s2 = data.length;
this.data = new byte [s1 * s2];
for (int i=0; i> 8);
data[j + i * 2 + 1] = (byte) (chars[i] & 0xFF);
}
}
public void write1 (byte [] b, int offset) {
write1 (index, b, offset);
index += b.length - offset;
}
public void write1 (byte [] b, int offset, int length) {
write1 (index, b, offset, length);
index += length;
}
//-- write2 - given j
public void write2 (int j, int s) {
data [j+offset] = (byte) ((s >> 8) & 0xff);
data [j+offset+1] = (byte) (s & 0xff);
}
public void write2 (int j, byte [] b, int offset) {
write2 (j, b, offset, b.length);
}
public void write2 (int j, byte [] b, int offset, int length) {
for (int i=offset; i> 24) & 0xff);
data [j+offset+1] = (byte) ((i >> 16) & 0xff);
data [j+offset+2] = (byte) ((i >> 8) & 0xff);
data [j+offset+3] = (byte) (i & 0xff);
}
public void write4 (int j, float f) {
write4 (j, Float.floatToIntBits (f));
}
public void write4 (int j, float [] f, int offset) {
write4 (j, f, offset, f.length);
}
public void write4 (int j, float [] f, int offset, int length) {
for (int k=offset; k> 56) & 0xff);
data [j+offset+1] = (byte) ((l >> 48) & 0xff);
data [j+offset+2] = (byte) ((l >> 40) & 0xff);
data [j+offset+3] = (byte) ((l >> 32) & 0xff);
data [j+offset+4] = (byte) ((l >> 24) & 0xff);
data [j+offset+5] = (byte) ((l >> 16) & 0xff);
data [j+offset+6] = (byte) ((l >> 8) & 0xff);
data [j+offset+7] = (byte) (l & 0xff);
}
public void write8 (int j, double d) {
write8 (j, Double.doubleToLongBits (d));
}
public void write8 (int j, double [] d, int offset) {
write8 (j, d, offset, d.length);
}
public void write8 (int j, double [] d, int offset, int length) {
for (int k=offset; k
© 2015 - 2025 Weber Informatics LLC | Privacy Policy