public void runStringTest(int length) throws IOException { Output write = new Output(1024, -1); StringBuilder buffer = new StringBuilder(); for (int i = 0; i < length; i++) buffer.append((char) i); String value = buffer.toString(); write.writeString(value); write.writeString(value); Input read = new Input(write.toBytes()); assertEquals(value, read.readString()); assertEquals(value, read.readStringBuilder().toString()); write.clear(); write.writeString(buffer); write.writeString(buffer); read = new Input(write.toBytes()); assertEquals(value, read.readStringBuilder().toString()); assertEquals(value, read.readString()); if (length <= 127) { write.clear(); write.writeAscii(value); write.writeAscii(value); read = new Input(write.toBytes()); assertEquals(value, read.readStringBuilder().toString()); assertEquals(value, read.readString()); } }
public void testStrings() throws IOException { runStringTest(new Output(4096)); runStringTest(new Output(897)); runStringTest(new Output(new ByteArrayOutputStream())); Output write = new Output(21); String value = "abcdef\u00E1\u00E9\u00ED\u00F3\u00FA\u1234"; write.writeString(value); Input read = new Input(write.toBytes()); assertEquals(value, read.readString()); write.clear(); write.writeString(null); read = new Input(write.toBytes()); assertEquals(null, read.readString()); for (int i = 0; i <= 258; i++) runStringTest(i); runStringTest(1); runStringTest(2); runStringTest(127); runStringTest(256); runStringTest(1024 * 1023); runStringTest(1024 * 1024); runStringTest(1024 * 1025); runStringTest(1024 * 1026); runStringTest(1024 * 1024 * 2); }
@Override public void read(Kryo kryo, Input input) { this.firstname = input.readString(); this.lastname = input.readString(); this.emailAddress = kryo.readObjectOrNull(input, SerializableEmailAddress.class); this.addresses = new HashSet<Address>(); int numAddresses = input.readInt(); for (int i = 0; i < numAddresses; i++) { this.add(kryo.readObject(input, SerializableAddress.class)); } }
@Override public void read(Kryo kryo, Input input) { super.read(kryo, input); if (_has(VALUES)) { setValues(((List) readChildCollection(kryo, input))); } if (_has(NAMESPACE)) { setNameSpace(input.readString()); } if (_has(IDENTITY)) { setIdentity(input.readString()); } }
public String readNullableString() throws EOFException { try { return input.readString(); } catch (KryoException e) { throw maybeEndOfStream(e); } }
public URL read(Kryo kryo, Input input, Class<URL> type) { try { return new java.net.URL(input.readString()); } catch (MalformedURLException e) { throw new KryoException(e); } }
public void runStringTest(Output write) throws IOException { String value1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ\rabcdefghijklmnopqrstuvwxyz\n1234567890\t\"!`?'.,;:()[]{}<>|/@\\^$-%+=#_&~*"; String value2 = "abcdef\u00E1\u00E9\u00ED\u00F3\u00FA\u1234"; write.writeString(""); write.writeString("1"); write.writeString("22"); write.writeString("uno"); write.writeString("dos"); write.writeString("tres"); write.writeString(null); write.writeString(value1); write.writeString(value2); for (int i = 0; i < 127; i++) write.writeString(String.valueOf((char) i)); for (int i = 0; i < 127; i++) write.writeString(String.valueOf((char) i) + "abc"); Input read = new Input(write.toBytes()); assertEquals("", read.readString()); assertEquals("1", read.readString()); assertEquals("22", read.readString()); assertEquals("uno", read.readString()); assertEquals("dos", read.readString()); assertEquals("tres", read.readString()); assertEquals(null, read.readString()); assertEquals(value1, read.readString()); assertEquals(value2, read.readString()); for (int i = 0; i < 127; i++) assertEquals(String.valueOf((char) i), read.readString()); for (int i = 0; i < 127; i++) assertEquals(String.valueOf((char) i) + "abc", read.readString()); read.rewind(); assertEquals("", read.readStringBuilder().toString()); assertEquals("1", read.readStringBuilder().toString()); assertEquals("22", read.readStringBuilder().toString()); assertEquals("uno", read.readStringBuilder().toString()); assertEquals("dos", read.readStringBuilder().toString()); assertEquals("tres", read.readStringBuilder().toString()); assertEquals(null, read.readStringBuilder()); assertEquals(value1, read.readStringBuilder().toString()); assertEquals(value2, read.readStringBuilder().toString()); for (int i = 0; i < 127; i++) assertEquals(String.valueOf((char) i), read.readStringBuilder().toString()); for (int i = 0; i < 127; i++) assertEquals(String.valueOf((char) i) + "abc", read.readStringBuilder().toString()); }
public SerializablePage loadPage(InputStream in) { synchronized (serializeLock) { Input input = null; try { input = new Input(in); input.readString(); kryo.readObject(input, UrlPageModel.class); return kryo.readObject(input, SerializablePage.class); } finally { IOUtils.closeQuietly(input); } } }
public Pair<String, UrlPageModel> loadPageInfo(InputStream in) { synchronized (serializeLock) { Input input = null; try { input = new Input(in); String title = input.readString(); UrlPageModel pageModel = kryo.readObject(input, UrlPageModel.class); return Pair.of(title, pageModel); } finally { IOUtils.closeQuietly(input); } } }
@Override protected VideoChunk readObject( Kryo kryo, Input input, Class<VideoChunk> clas, long requestId, String streamId, long sequenceNr) throws Exception { long duration = input.readLong(); int length = input.readInt(); byte[] video = input.readBytes(length); String container = input.readString(); VideoChunk chunk = new VideoChunk(streamId, sequenceNr, duration, video, container); chunk.setRequestId(requestId); return chunk; }
@Override public void read(Kryo kryo, Input input) { setUser(kryo.readObject(input, KryoUser.class)); setPassword(input.readString()); setFriends((List<User>) kryo.readClassAndObject(input)); }
@Override public File read(Kryo kryo, Input input, Class<File> type) { return new File(input.readString()); }
public String read(Kryo kryo, Input input, Class<String> type) { return input.readString(); }
@Override public Path read(Kryo kryo, Input input, Class<Path> type) { return new Path(URI.create(input.readString())); }
public Charset read(Kryo kryo, Input input, Class<Charset> type) { return Charset.forName(input.readString()); }
public Locale read(Kryo kryo, Input input, Class<Locale> type) { String language = input.readString(); String country = input.readString(); String variant = input.readString(); return create(language, country, variant); }
public TimeZone read(Kryo kryo, Input input, Class<TimeZone> type) { return TimeZone.getTimeZone(input.readString()); }
public StringBuffer read(Kryo kryo, Input input, Class<StringBuffer> type) { String value = input.readString(); if (value == null) return null; return new StringBuffer(value); }
public Currency read(Kryo kryo, Input input, Class<Currency> type) { String currencyCode = input.readString(); if (currencyCode == null) return null; return Currency.getInstance(currencyCode); }