1 21 package com.db4o.cs.messages; 22 23 import com.db4o.*; 24 import com.db4o.cs.*; 25 26 public final class MReadBytes extends MsgD { 27 28 public final YapReader getByteLoad() { 29 int address = _payLoad.readInt(); 30 int length = _payLoad.getLength() - (YapConst.INT_LENGTH); 31 _payLoad.removeFirstBytes(YapConst.INT_LENGTH); 32 _payLoad.useSlot(address, length); 33 return this._payLoad; 34 } 35 36 public final MsgD getWriter(YapWriter bytes) { 37 MsgD message = getWriterForLength(bytes.getTransaction(), bytes.getLength() + YapConst.INT_LENGTH); 38 message._payLoad.writeInt(bytes.getAddress()); 39 message._payLoad.append(bytes._buffer); 40 return message; 41 } 42 43 public final boolean processAtServer(YapServerThread serverThread) { 44 int address = readInt(); 45 int length = readInt(); 46 synchronized (streamLock()) { 47 YapWriter bytes = 48 new YapWriter(this.transaction(), address, length); 49 try { 50 stream().readBytes(bytes._buffer, address, length); 51 serverThread.write(getWriter(bytes)); 52 } catch (Exception e) { 53 serverThread.write(Msg.NULL); 55 } 56 } 57 return true; 58 } 59 } | Popular Tags |