/** * Send single command to server and store results. * This constructor is used internally. * The static request methods should be used instead. * * @param conn connection to server node * @param command command sent to server */ public Info(Connection conn, String command) throws AerospikeException { buffer = ThreadLocalData.getBuffer(); // If conservative estimate may be exceeded, get exact estimate // to preserve memory and resize buffer. if ((command.length() * 2 + 9) > buffer.length) { offset = Buffer.estimateSizeUtf8(command) + 9; resizeBuffer(offset); } offset = 8; // Skip size field. // The command format is: <name1>\n<name2>\n... offset += Buffer.stringToUtf8(command, buffer, offset); buffer[offset++] = '\n'; sendCommand(conn); }
/** * Send single command to server and store results. * This constructor is used internally. * The static request methods should be used instead. * * @param conn connection to server node * @param command command sent to server */ public Info(Connection conn, String command) throws AerospikeException { buffer = ThreadLocalData.getBuffer(); // If conservative estimate may be exceeded, get exact estimate // to preserve memory and resize buffer. if ((command.length() * 2 + 9) > buffer.length) { offset = Buffer.estimateSizeUtf8(command) + 9; resizeBuffer(offset); } offset = 8; // Skip size field. // The command format is: <name1>\n<name2>\n... offset += Buffer.stringToUtf8(command, buffer, offset); buffer[offset++] = '\n'; sendCommand(conn); }
offset += Buffer.estimateSizeUtf8(command) + 1; resizeBuffer(offset);
offset += Buffer.estimateSizeUtf8(command) + 1; resizeBuffer(offset);
offset += Buffer.estimateSizeUtf8(command) + 1; resizeBuffer(offset);
offset += Buffer.estimateSizeUtf8(command) + 1; resizeBuffer(offset);
/** * Issue request and set results buffer. This method is used internally. * The static request methods should be used instead. * * @param conn socket connection to server node * @throws IOException if socket send or receive fails */ private void sendCommand(Connection conn) throws AerospikeException { try { // Write size field. long size = ((long)offset - 8L) | (2L << 56) | (1L << 48); Buffer.longToBytes(size, buffer, 0); // Write. conn.write(buffer, offset); // Read - reuse input buffer. conn.readFully(buffer, 8); size = Buffer.bytesToLong(buffer, 0); length = (int)(size & 0xFFFFFFFFFFFFL); resizeBuffer(length); conn.readFully(buffer, length); offset = 0; } catch (IOException ioe) { throw new AerospikeException(ioe); } }
/** * Issue request and set results buffer. This method is used internally. * The static request methods should be used instead. * * @param conn socket connection to server node * @throws IOException if socket send or receive fails */ private void sendCommand(Connection conn) throws AerospikeException { try { // Write size field. long size = ((long)offset - 8L) | (2L << 56) | (1L << 48); Buffer.longToBytes(size, buffer, 0); // Write. conn.write(buffer, offset); // Read - reuse input buffer. conn.readFully(buffer, 8); size = Buffer.bytesToLong(buffer, 0); length = (int)(size & 0xFFFFFFFFFFFFL); resizeBuffer(length); conn.readFully(buffer, length); offset = 0; } catch (IOException ioe) { throw new AerospikeException(ioe); } }