/** * Write a number of bytes. * * @param buff the value * @param off the offset * @param len the length * @return itself */ public Transfer writeBytes(byte[] buff, int off, int len) throws IOException { writeInt(len); out.write(buff, off, len); return this; }
private void sendParameters(Transfer transfer) throws IOException { int len = parameters.size(); transfer.writeInt(len); for (CommandParameter p : parameters) { transfer.writeValue(p.getValue()); } }
/** * Write the parameter meta data to the transfer object. * * @param p the parameter */ private static void writeParameterMetaData(Transfer transfer, CommandParameter p) throws IOException { transfer.writeInt(p.getType()); transfer.writeLong(p.getPrecision()); transfer.writeInt(p.getScale()); transfer.writeInt(p.getNullable()); }
/** * Write a byte buffer. * * @param data the value * @return itself */ @Override public Transfer writeByteBuffer(ByteBuffer data) throws IOException { if (data == null) { writeInt(-1); } else { if (data.hasArray()) { writeBytes(data.array(), data.arrayOffset(), data.limit()); } else { byte[] bytes = new byte[data.limit()]; data.get(bytes); writeBytes(bytes); } } return this; }
private static void writeBatchResult(Transfer transfer, Session session, int id, int[] result) throws IOException { writeResponseHeader(transfer, session, id); for (int i = 0; i < result.length; i++) transfer.writeInt(result[i]); transfer.flush(); }
/** * Cancel the statement with the given id. * * @param id the statement id */ public void cancelStatement(int statementId) { try { transfer.writeRequestHeader(Session.SESSION_CANCEL_STATEMENT).writeInt(statementId).flush(); } catch (IOException e) { trace.debug(e, "could not cancel statement"); } }
private void writeInitPacket(String localHostAndPort) throws Exception { int packetId = 0; Transfer transfer = new Transfer(this, writableChannel); transfer.writeRequestHeaderWithoutSessionId(packetId, Session.SESSION_INIT); transfer.writeInt(MessagingService.PROTOCOL_MAGIC); transfer.writeInt(version); transfer.writeString(localHostAndPort); AsyncCallback<Void> ac = new AsyncCallback<>(); transfer.addAsyncCallback(packetId, ac); transfer.flush(); ac.await(); }
/** * Write a result column to the given output. * * @param result the result * @param i the column index */ private static void writeColumn(Transfer transfer, Result result, int i) throws IOException { transfer.writeString(result.getAlias(i)); transfer.writeString(result.getSchemaName(i)); transfer.writeString(result.getTableName(i)); transfer.writeString(result.getColumnName(i)); transfer.writeInt(result.getColumnType(i)); transfer.writeLong(result.getColumnPrecision(i)); transfer.writeInt(result.getColumnScale(i)); transfer.writeInt(result.getDisplaySize(i)); transfer.writeBoolean(result.isAutoIncrement(i)); transfer.writeInt(result.getNullable(i)); }
protected void sendFetch(int fetchSize) throws IOException { session.traceOperation("RESULT_FETCH_ROWS", id); transfer.writeRequestHeader(id, Session.RESULT_FETCH_ROWS).writeInt(fetchSize); AsyncCallback<Void> ac = new AsyncCallback<>(); transfer.addAsyncCallback(id, ac); transfer.flush(); ac.await(); }
transfer.writeString(e.getSQLState()).writeString(message).writeString(sql).writeInt(e.getErrorCode()) .writeString(trace).flush(); } catch (Exception e2) {
protected void remapIfOld() { if (session == null) { return; } try { if (id <= session.getCurrentId() - SysProperties.SERVER_CACHED_OBJECTS / 2) { // object is too old - we need to map it to a new id int newId = session.getNextId(); session.traceOperation("CHANGE_ID", id); transfer.writeRequestHeader(id, Session.RESULT_CHANGE_ID).writeInt(newId).flush(); id = newId; // TODO remote result set: very old result sets may be // already removed on the server (theoretically) - how to // solve this? } } catch (IOException e) { throw DbException.convertIOException(e, null); } }
transfer.writeBytes(hmac); transfer.writeLong(offset); transfer.writeInt(length); AtomicInteger lengthAI = new AtomicInteger(); AsyncCallback<Void> ac = new AsyncCallback<Void>() {
@Override public void run() { command.executeUpdateAsync(pageKeys, res -> { if (res.isSucceeded()) { int updateCount = res.getResult(); try { transfer.writeResponseHeader(id, getStatus(session)); if (session.isRunModeChanged()) { transfer.writeInt(sessionId).writeString(session.getNewTargetEndpoints()); } if (operation == Session.COMMAND_DISTRIBUTED_TRANSACTION_UPDATE || operation == Session.COMMAND_DISTRIBUTED_TRANSACTION_PREPARED_UPDATE) { transfer.writeString(session.getTransaction().getLocalTransactionNames()); } transfer.writeInt(updateCount); transfer.writeLong(session.getLastRowKey()); transfer.flush(); } catch (Exception e) { sendError(transfer, id, e); } } else { sendError(transfer, id, res.getCause()); } }); } });
transfer.setSSL(ci.isSSL()); transfer.writeRequestHeader(id, Session.SESSION_INIT); transfer.writeInt(Constants.TCP_PROTOCOL_VERSION_1); // minClientVersion transfer.writeInt(Constants.TCP_PROTOCOL_VERSION_1); // maxClientVersion transfer.writeString(ci.getDatabaseShortName()); transfer.writeBytes(ci.getFileEncryptionKey()); String[] keys = ci.getKeys(); transfer.writeInt(keys.length); for (String key : keys) { transfer.writeString(key).writeString(ci.getProperty(key));
session.traceOperation("COMMAND_GET_META_DATA", id); transfer.writeRequestHeader(id, Session.COMMAND_GET_META_DATA); transfer.writeInt(objectId); AsyncCallback<ClientResult> ac = new AsyncCallback<ClientResult>() { @Override