public static long int64(InputStream in) throws IOException { return int64(in, null); }
public static long int64(InputStream stream) throws IOException { return int64(stream, null); }
public static long varInt(InputStream stream, AccessCounter counter) throws IOException { int first = stream.read(); inc(counter); switch (first) { case 0xfd: return uint16(stream, counter); case 0xfe: return uint32(stream, counter); case 0xff: return int64(stream, counter); default: return first; } }
public static long varInt(InputStream in, AccessCounter counter) throws IOException { int first = in.read(); inc(counter); switch (first) { case 0xfd: return uint16(in, counter); case 0xfe: return uint32(in, counter); case 0xff: return int64(in, counter); default: return first; } }
private static NetworkAddress parseAddress(InputStream stream, boolean light) throws IOException { long time; long streamNumber; if (!light) { time = Decode.int64(stream); streamNumber = Decode.uint32(stream); // This isn't consistent, not sure if this is correct } else { time = 0; streamNumber = 0; } long services = Decode.int64(stream); byte[] ipv6 = Decode.bytes(stream, 16); int port = Decode.uint16(stream); return new NetworkAddress.Builder().time(time).stream(streamNumber).services(services).ipv6(ipv6).port(port).build(); }
private static Version parseVersion(InputStream stream) throws IOException { int version = Decode.int32(stream); long services = Decode.int64(stream); long timestamp = Decode.int64(stream); NetworkAddress addrRecv = parseAddress(stream, true); NetworkAddress addrFrom = parseAddress(stream, true); long nonce = Decode.int64(stream); String userAgent = Decode.varString(stream); long[] streamNumbers = Decode.varIntList(stream); return new Version.Builder() .version(version) .services(services) .timestamp(timestamp) .addrRecv(addrRecv).addrFrom(addrFrom) .nonce(nonce) .userAgent(userAgent) .streams(streamNumbers).build(); }
private static Version parseVersion(InputStream stream) throws IOException { int version = Decode.int32(stream); long services = Decode.int64(stream); long timestamp = Decode.int64(stream); NetworkAddress addrRecv = parseAddress(stream, true); NetworkAddress addrFrom = parseAddress(stream, true); long nonce = Decode.int64(stream); String userAgent = Decode.varString(stream); long[] streamNumbers = Decode.varIntList(stream); return new Version.Builder() .version(version) .services(services) .timestamp(timestamp) .addrRecv(addrRecv).addrFrom(addrFrom) .nonce(nonce) .userAgent(userAgent) .streams(streamNumbers).build(); }
private static NetworkAddress parseAddress(InputStream stream, boolean light) throws IOException { long time; long streamNumber; if (!light) { time = Decode.int64(stream); streamNumber = Decode.uint32(stream); // This isn't consistent, not sure if this is correct } else { time = 0; streamNumber = 0; } long services = Decode.int64(stream); byte[] ipv6 = Decode.bytes(stream, 16); int port = Decode.uint16(stream); return new NetworkAddress.Builder() .time(time) .stream(streamNumber) .services(services) .ipv6(ipv6) .port(port) .build(); }
public static ObjectMessage readObject(InputStream in, int length) throws IOException { AccessCounter counter = new AccessCounter(); byte nonce[] = Decode.bytes(in, 8, counter); long expiresTime = Decode.int64(in, counter); long objectType = Decode.uint32(in, counter); long version = Decode.varInt(in, counter); long stream = Decode.varInt(in, counter); byte[] data = Decode.bytes(in, length - counter.length()); ObjectPayload payload; try { ByteArrayInputStream dataStream = new ByteArrayInputStream(data); payload = Factory.getObjectPayload(objectType, version, stream, dataStream, data.length); } catch (Exception e) { LOG.trace("Could not parse object payload - using generic payload instead", e); payload = new GenericPayload(version, stream, data); } return new ObjectMessage.Builder() .nonce(nonce) .expiresTime(expiresTime) .objectType(objectType) .stream(stream) .payload(payload) .build(); }
public static ObjectMessage readObject(InputStream in, int length) throws IOException { AccessCounter counter = new AccessCounter(); byte nonce[] = Decode.bytes(in, 8, counter); long expiresTime = Decode.int64(in, counter); long objectType = Decode.uint32(in, counter); long version = Decode.varInt(in, counter); long stream = Decode.varInt(in, counter); byte[] data = Decode.bytes(in, length - counter.length()); ObjectPayload payload; try { ByteArrayInputStream dataStream = new ByteArrayInputStream(data); payload = Factory.getObjectPayload(objectType, version, stream, dataStream, data.length); } catch (IOException e) { LOG.trace("Could not parse object payload - using generic payload instead", e); payload = new GenericPayload(version, stream, data); } return new ObjectMessage.Builder() .nonce(nonce) .expiresTime(expiresTime) .objectType(objectType) .stream(stream) .payload(payload) .build(); }