public static byte[] streamableToByteBuffer(Streamable obj) throws Exception { final ByteArrayDataOutputStream out=new ByteArrayDataOutputStream(512); obj.writeTo(out); return Arrays.copyOf(out.buffer(), out.position()); }
public ByteArrayDataOutputStream position(int pos) {this.pos=checkBounds(pos); return this;} public int position() {return pos;}
public void writeChars(String s) { int len=s != null? s.length() : 0; if(len > 0) ensureCapacity(len *2); // 2 bytes per char for(int i = 0 ; i < len ; i++) { int v = s.charAt(i); writeChar(v); } }
public static Buffer messageToByteBuffer(Message msg) throws Exception { ByteArrayDataOutputStream out=new ByteArrayDataOutputStream(512); out.writeBoolean(msg != null); if(msg != null) msg.writeTo(out); return out.getBuffer(); }
public void writeBytes(String s) { int len=s != null? s.length() : 0; if(len > 0) ensureCapacity(len); for(int i = 0 ; i < len ; i++) write((byte)s.charAt(i)); }
protected static Buffer streamableToBuffer(byte req_or_rsp, byte type, Streamable obj) throws Exception { ByteArrayDataOutputStream out=new ByteArrayDataOutputStream(100); out.writeByte(req_or_rsp); out.writeByte(type); obj.writeTo(out); return new Buffer(out.buffer(), 0, out.position()); }
protected Buffer writeMessage(final Message msg) throws Exception { dos.position(0); byte flags=0; dos.writeShort(Version.version); // write the version if(msg.getDest() == null) flags+=(byte)2; dos.writeByte(flags); msg.writeTo(dos); return new Buffer(dos.buffer(), 0, dos.position()); } }
protected static Buffer marshal(Collection<? extends Address> mbrs) { try { final ByteArrayDataOutputStream out=new ByteArrayDataOutputStream(512); Util.writeAddresses(mbrs, out); return out.getBuffer(); } catch(Exception ex) { return null; } }
protected void sendLocalAddress(Address local_addr) throws Exception { try { ByteArrayDataOutputStream out=new ByteArrayDataOutputStream(); out.write(cookie, 0, cookie.length); out.writeShort(Version.version); out.writeShort(local_addr.size()); // address size local_addr.writeTo(out); ByteBuffer buf=out.getByteBuffer(); send(buf, false); updateLastAccessed(); } catch(Exception ex) { close(); throw ex; } }
public Buffer objectToBuffer(Object obj) throws Exception { ByteArrayDataOutputStream out=new ByteArrayDataOutputStream(msg_size + 100); boolean is_mc=obj instanceof MethodCall; out.writeBoolean(is_mc); if(!is_mc) Util.objectToStream(obj, out); else { MethodCall mc=(MethodCall)obj; out.writeShort(mc.getId()); Object[] args=mc.getArgs(); int num_args=args == null? 0 : args.length; out.writeShort(num_args); for(int i=0; i < num_args; i++) Util.objectToStream(args[i], out); } return out.getBuffer(); }
ByteArrayDataOutputStream dos=new ByteArrayDataOutputStream((int)(msg.size())); byte flags=0; dos.writeShort(Version.version); // write the version if(msg.getDest() == null) flags+=(byte)2; dos.writeByte(flags); msg.writeTo(dos); Buffer buffer=dos.getBuffer();
protected static Buffer marshal(final View view, final Digest digest) { try { final ByteArrayDataOutputStream out=new ByteArrayDataOutputStream(512); out.writeShort(determineFlags(view, digest)); if(view != null) view.writeTo(out); if(digest != null) digest.writeTo(out, writeAddresses(view, digest)); return out.getBuffer(); } catch(Exception ex) { return null; } }
public static Buffer marshal(LazyRemovalCache<Address,IpAddress> addrs) { final ByteArrayDataOutputStream out=new ByteArrayDataOutputStream(512); try { int size=addrs != null? addrs.size() : 0; out.writeInt(size); if(size > 0) { for(Map.Entry<Address,LazyRemovalCache.Entry<IpAddress>> entry: addrs.entrySet()) { Address key=entry.getKey(); IpAddress val=entry.getValue().getVal(); Util.writeAddress(key, out); Util.writeStreamable(val, out); } } return out.getBuffer(); } catch(Exception ex) { return null; } }
public void writeUTF(String str) { int strlen=str != null? str.length() : 0; if(strlen > 0) ensureCapacity(strlen *2 + 2); writeShort(-1); return; write(bytearr, 0, utflen+2);
public static Buffer objectToBuffer(Object obj) throws Exception { if(obj == null) return new Buffer(TYPE_NULL_ARRAY); if(obj instanceof Streamable) { final ByteArrayDataOutputStream out=new ByteArrayDataOutputStream(512, true); out.write(TYPE_STREAMABLE); writeGenericStreamable((Streamable)obj,out); return out.getBuffer(); } Byte type=PRIMITIVE_TYPES.get(obj.getClass()); if(type == null) { // will throw an exception if object is not serializable final ByteArrayDataOutputStream out_stream=new ByteArrayDataOutputStream(512, true); out_stream.write(TYPE_SERIALIZABLE); try(ObjectOutputStream out=new ObjectOutputStream(new OutputStreamAdapter(out_stream))) { out.writeObject(obj); out.flush(); return out_stream.getBuffer(); } } return new Buffer(marshalPrimitiveType(type, obj)); }
protected void sendMessageList(final Address dest, final Address src, final byte[] cluster_name, final List<Message> list) { try { Util.writeMessageList(dest, src, cluster_name, list, output, dest == null, transport.getId()); // flushes output stream when done transport.doSend(transport.isSingleton()? new AsciiString(cluster_name) : null, output.buffer(), 0, output.position(), dest); } catch(SocketException sock_ex) { log.debug(Util.getMessage("FailureSendingMsgBundle"),transport.localAddress(),sock_ex); } catch(Throwable e) { log.error(Util.getMessage("FailureSendingMsgBundle"), transport.localAddress(), e); } }
public void write(int b) { ensureCapacity(1); buf[pos++]=(byte)b; }
public void init(TP transport) { this.transport=transport; log=transport.getLog(); buf_pool=new ArrayBlockingQueue<>(pool_size); for(int i=0; i < pool_size; i++) buf_pool.offer(new ByteArrayDataOutputStream(initial_buf_size)); } public void start() {}
protected static Buffer streamableToBuffer(byte req_or_rsp, byte type, Streamable obj) throws Exception { ByteArrayDataOutputStream out=new ByteArrayDataOutputStream(100); out.writeByte(req_or_rsp); out.writeByte(type); obj.writeTo(out); return new Buffer(out.buffer(), 0, out.position()); }