mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-12 18:59:06 +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 {
|
||||
|
||||
@@ -37,7 +37,7 @@ public class ReaderImplTest extends BriarTestCase {
|
||||
|
||||
@Test
|
||||
public void testReadBoolean() throws Exception {
|
||||
setContents("11" + "00" + "11" + "01");
|
||||
setContents("10" + "11");
|
||||
assertFalse(r.readBoolean());
|
||||
assertTrue(r.readBoolean());
|
||||
assertTrue(r.eof());
|
||||
@@ -45,7 +45,7 @@ public class ReaderImplTest extends BriarTestCase {
|
||||
|
||||
@Test
|
||||
public void testSkipBoolean() throws Exception {
|
||||
setContents("11" + "00" + "11" + "01");
|
||||
setContents("10" + "11");
|
||||
r.skipBoolean();
|
||||
r.skipBoolean();
|
||||
assertTrue(r.eof());
|
||||
|
||||
@@ -36,8 +36,8 @@ public class WriterImplTest extends BriarTestCase {
|
||||
public void testWriteBoolean() throws IOException {
|
||||
w.writeBoolean(true);
|
||||
w.writeBoolean(false);
|
||||
// BOOLEAN tag, 1, BOOLEAN tag, 0
|
||||
checkContents("11" + "01" + "11" + "00");
|
||||
// TRUE tag, FALSE tag
|
||||
checkContents("11" + "10");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user