mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-15 12:19:54 +01:00
Represent booleans with a single byte.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package org.briarproject.data;
|
||||
|
||||
import static org.briarproject.data.Types.END;
|
||||
import static org.briarproject.data.Types.FALSE;
|
||||
import static org.briarproject.data.Types.FLOAT_64;
|
||||
import static org.briarproject.data.Types.INT_16;
|
||||
import static org.briarproject.data.Types.INT_32;
|
||||
@@ -15,6 +16,7 @@ import static org.briarproject.data.Types.RAW_8;
|
||||
import static org.briarproject.data.Types.STRING_16;
|
||||
import static org.briarproject.data.Types.STRING_32;
|
||||
import static org.briarproject.data.Types.STRING_8;
|
||||
import static org.briarproject.data.Types.TRUE;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
@@ -133,24 +135,18 @@ class ReaderImpl implements Reader {
|
||||
public boolean hasBoolean() throws IOException {
|
||||
if(!hasLookahead) readLookahead();
|
||||
if(eof) return false;
|
||||
return next == Types.BOOLEAN;
|
||||
return next == FALSE || next == TRUE;
|
||||
}
|
||||
|
||||
public boolean readBoolean() throws IOException {
|
||||
if(!hasBoolean()) throw new FormatException();
|
||||
boolean bool = next == TRUE;
|
||||
consumeLookahead();
|
||||
return readBoolean(true);
|
||||
}
|
||||
|
||||
private boolean readBoolean(boolean consume) throws IOException {
|
||||
readIntoBuffer(1, consume);
|
||||
if(buf[0] != 0 && buf[0] != 1) throw new FormatException();
|
||||
return buf[0] == 1;
|
||||
return bool;
|
||||
}
|
||||
|
||||
public void skipBoolean() throws IOException {
|
||||
if(!hasBoolean()) throw new FormatException();
|
||||
skip(1);
|
||||
hasLookahead = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,8 @@ package org.briarproject.data;
|
||||
interface Types {
|
||||
|
||||
byte NULL = 0x00;
|
||||
byte BOOLEAN = 0x11;
|
||||
byte FALSE = 0x10;
|
||||
byte TRUE = 0x11;
|
||||
byte INT_8 = 0x21;
|
||||
byte INT_16 = 0x22;
|
||||
byte INT_32 = 0x24;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package org.briarproject.data;
|
||||
|
||||
import static org.briarproject.data.Types.BOOLEAN;
|
||||
import static org.briarproject.data.Types.END;
|
||||
import static org.briarproject.data.Types.FALSE;
|
||||
import static org.briarproject.data.Types.FLOAT_64;
|
||||
import static org.briarproject.data.Types.INT_16;
|
||||
import static org.briarproject.data.Types.INT_32;
|
||||
@@ -16,6 +16,7 @@ import static org.briarproject.data.Types.RAW_8;
|
||||
import static org.briarproject.data.Types.STRING_16;
|
||||
import static org.briarproject.data.Types.STRING_32;
|
||||
import static org.briarproject.data.Types.STRING_8;
|
||||
import static org.briarproject.data.Types.TRUE;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
@@ -60,9 +61,8 @@ class WriterImpl implements Writer {
|
||||
}
|
||||
|
||||
public void writeBoolean(boolean b) throws IOException {
|
||||
write(BOOLEAN);
|
||||
if(b) write((byte) 1);
|
||||
else write((byte) 0);
|
||||
if(b) write(TRUE);
|
||||
else write(FALSE);
|
||||
}
|
||||
|
||||
public void writeInteger(long i) throws IOException {
|
||||
@@ -139,9 +139,9 @@ class WriterImpl implements Writer {
|
||||
}
|
||||
|
||||
public void writeList(Collection<?> c) throws IOException {
|
||||
write(Types.LIST);
|
||||
write(LIST);
|
||||
for(Object o : c) writeObject(o);
|
||||
write(Types.END);
|
||||
write(END);
|
||||
}
|
||||
|
||||
private void writeObject(Object o) throws IOException {
|
||||
|
||||
Reference in New Issue
Block a user