當前位置: 首頁>>代碼示例>>Java>>正文


Java Buffer.length方法代碼示例

本文整理匯總了Java中io.vertx.core.buffer.Buffer.length方法的典型用法代碼示例。如果您正苦於以下問題:Java Buffer.length方法的具體用法?Java Buffer.length怎麽用?Java Buffer.length使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在io.vertx.core.buffer.Buffer的用法示例。


在下文中一共展示了Buffer.length方法的12個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: handle

import io.vertx.core.buffer.Buffer; //導入方法依賴的package包/類
@Override
public void handle(Buffer buff) {
  if (failed) {
    return;
  }
  uploadSize += buff.length();
  if (bodyLimit != -1 && uploadSize > bodyLimit) {
    failed = true;
    context.fail(Status.REQUEST_ENTITY_TOO_LARGE.getStatusCode());
  } else {
    // multipart requests will not end up in the request body
    // url encoded should also not, however jQuery by default
    // post in urlencoded even if the payload is something else
    if (!isMultipart /* && !isUrlEncoded */) {
      body.appendBuffer(buff);
    }
  }
}
 
開發者ID:apache,項目名稱:incubator-servicecomb-java-chassis,代碼行數:19,代碼來源:RestBodyHandler.java

示例2: readObject

import io.vertx.core.buffer.Buffer; //導入方法依賴的package包/類
@SuppressWarnings("unchecked")
default <T> T readObject(Buffer buffer, ProtobufFeature protobufFeature) throws Exception {
  if (buffer == null || buffer.length() == 0) {
    // void以及函數入參為null的場景
    // 空串時,protobuf至少為編碼為1字節
    return (T) readFromEmpty();
  }

  ByteBuffer nioBuffer = buffer.getByteBuf().nioBuffer();
  Input input = new ByteBufferInput(nioBuffer, false);

  ProtobufFeatureUtils.setProtobufFeature(protobufFeature);
  try {
    return (T) readObject(input);
  } finally {
    ProtobufFeatureUtils.removeProtobufFeature();
  }
}
 
開發者ID:apache,項目名稱:incubator-servicecomb-java-chassis,代碼行數:19,代碼來源:WrapSchema.java

示例3: parseHeader

import io.vertx.core.buffer.Buffer; //導入方法依賴的package包/類
/**
 * 解析報文頭。
 * 
 * @param headerBuffer header Buffer
 * @param expectedCommand expectedCommand
 * @param expectedBodyLength expectedBodyLength
 * @return async result of the length of the packet body
 */
public static Future<Long> parseHeader(Buffer headerBuffer, byte expectedCommand, long expectedBodyLength) {
	if (headerBuffer.length() != HEADER_BYTE_LENGTH) {
		return Future.failedFuture(new FdfsException("receive packet size" + headerBuffer.length()
				+ " is not equal to the expected header size: " + HEADER_BYTE_LENGTH));
	}

	byte command = headerBuffer.getByte(PROTO_HEADER_CMD_INDEX);
	if (command != expectedCommand) {
		return Future.failedFuture(new FdfsException(
				"receive command: " + command + " is not equal to the expected command: " + expectedCommand));
	}

	byte status = headerBuffer.getByte(PROTO_HEADER_STATUS_INDEX);
	if (status != HEADER_STATUS_SUCCESS) {
		return Future.failedFuture(new FdfsException("receive packet errno is: " + status));
	}

	long bodyLength = headerBuffer.getLong(0);
	if (expectedBodyLength > 0 && bodyLength != expectedBodyLength) {
		return Future.failedFuture(new FdfsException("receive packet body length: " + bodyLength
				+ " is not equal to the expected: " + expectedBodyLength));
	}

	return Future.succeededFuture(bodyLength);
}
 
開發者ID:gengteng,項目名稱:vertx-fastdfs-client,代碼行數:34,代碼來源:FdfsProtocol.java

示例4: parseMetaData

import io.vertx.core.buffer.Buffer; //導入方法依賴的package包/類
/**
 * 解析Buffer為metadata(JsonObject)。
 * 
 * @param buffer buffer
 * @param charset charset
 * @return JsonObject
 */
public static JsonObject parseMetaData(Buffer buffer, String charset) {
	JsonObject json = new JsonObject();

	if (buffer == null || buffer.length() == 0) {
		return json;
	}

	String meta = buffer.toString(charset);

	if (meta == null || meta.isEmpty()) {
		return json;
	}

	String[] md = meta.split(FDFS_RECORD_SEPERATOR);

	for (String item : md) {
		String[] kv = item.split(FDFS_FIELD_SEPERATOR);
		if (kv.length >= 2) {
			json.put(FdfsUtils.fdfsTrim(kv[0]), FdfsUtils.fdfsTrim(kv[1]));
		}
	}

	return json;
}
 
開發者ID:gengteng,項目名稱:vertx-fastdfs-client,代碼行數:32,代碼來源:FdfsProtocol.java

示例5: parseStorage

import io.vertx.core.buffer.Buffer; //導入方法依賴的package包/類
private Future<FdfsStorageOptions> parseStorage(Buffer bodyBuffer, String charset, boolean hasPathIndex) {
	try {
		FdfsStorageOptions storageOptions = new FdfsStorageOptions(options);

		String group = FdfsUtils
				.fdfsTrim(bodyBuffer.getString(0, FdfsProtocol.FDFS_GROUP_NAME_MAX_LEN, options.getCharset()));
		String ip = FdfsUtils.fdfsTrim(bodyBuffer.getString(FdfsProtocol.FDFS_GROUP_NAME_MAX_LEN,
				FdfsProtocol.FDFS_GROUP_NAME_MAX_LEN + FdfsProtocol.FDFS_IPADDR_SIZE - 1, options.getCharset()));
		long port = bodyBuffer.getLong(FdfsProtocol.FDFS_GROUP_NAME_MAX_LEN + FdfsProtocol.FDFS_IPADDR_SIZE - 1);

		storageOptions.setGroup(group).setAddress(SocketAddress.inetSocketAddress((int) port, ip));

		if (hasPathIndex && bodyBuffer.length() > FdfsProtocol.TRACKER_QUERY_STORAGE_FETCH_BODY_LEN) {
			byte storePathIndex = bodyBuffer.getByte(FdfsProtocol.TRACKER_QUERY_STORAGE_FETCH_BODY_LEN);
			storageOptions.setStorePathIndex(storePathIndex);
		}

		return Future.succeededFuture(storageOptions);
	} catch (Exception e) {
		return Future.failedFuture(e);
	}
}
 
開發者ID:gengteng,項目名稱:vertx-fastdfs-client,代碼行數:23,代碼來源:FdfsTrackerImpl.java

示例6: decodeResponse

import io.vertx.core.buffer.Buffer; //導入方法依賴的package包/類
default Object decodeResponse(Buffer buffer, JavaType type) throws Exception {
  if (buffer.length() == 0) {
    return null;
  }

  try (BufferInputStream input = new BufferInputStream(buffer.getByteBuf())) {
    return doDecodeResponse(input, type);
  }
}
 
開發者ID:apache,項目名稱:incubator-servicecomb-java-chassis,代碼行數:10,代碼來源:ProduceProcessor.java

示例7: packFileId

import io.vertx.core.buffer.Buffer; //導入方法依賴的package包/類
/**
 * 封裝隻有fileId的包,下載和刪除時使用。
 * 
 * @param command command
 * @param fileId fileId
 * @param charset charset
 * @return the packet buffer
 */
public static Buffer packFileId(byte command, FdfsFileId fileId, String charset) {
	Buffer groupBuffer = Buffer.buffer(fileId.group(), charset);
	Buffer nameBuffer = Buffer.buffer(fileId.name(), charset);
	int bodyLength = FDFS_GROUP_NAME_MAX_LEN + nameBuffer.length();
	Buffer headerBuffer = packHeader(command, (byte) 0, bodyLength);

	Buffer bodyBuffer = FdfsUtils.newZero(bodyLength);
	bodyBuffer.setBuffer(0, groupBuffer);
	bodyBuffer.setBuffer(FDFS_GROUP_NAME_MAX_LEN, nameBuffer);

	return headerBuffer.appendBuffer(bodyBuffer);
}
 
開發者ID:gengteng,項目名稱:vertx-fastdfs-client,代碼行數:21,代碼來源:FdfsProtocol.java

示例8: uploadFile

import io.vertx.core.buffer.Buffer; //導入方法依賴的package包/類
private Future<FdfsFileId> uploadFile(byte command, String fileFullPathName, String ext) {
	
	Buffer extBuffer = Buffer.buffer(ext, options.getCharset());
	if (extBuffer.length() > FdfsProtocol.FDFS_FILE_EXT_NAME_MAX_LEN) {
		return Future.failedFuture("ext is too long ( greater than " + FdfsProtocol.FDFS_FILE_EXT_NAME_MAX_LEN + ")");
	}

	Future<FdfsFileId> futureFileId = Future.future();

	LocalFile.readFile(vertx.fileSystem(), fileFullPathName).setHandler(ar -> {
		if (ar.succeeded()) {
			LocalFile localFile = ar.result();

			uploadFile(command, localFile.getFile(), localFile.getSize(), ext).setHandler(upload -> {

				localFile.closeFile();

				if (upload.succeeded()) {
					futureFileId.complete(upload.result());
				} else {
					futureFileId.fail(upload.cause());
				}
			});

		} else {
			futureFileId.fail(ar.cause());
		}
	});

	return futureFileId;
}
 
開發者ID:gengteng,項目名稱:vertx-fastdfs-client,代碼行數:32,代碼來源:FdfsStorageImpl.java

示例9: normalizeLineEndingsFor

import io.vertx.core.buffer.Buffer; //導入方法依賴的package包/類
protected static Buffer normalizeLineEndingsFor(final Buffer buff) {
    final int buffLen = buff.length();
    final Buffer normalized = Buffer.buffer(buffLen);
    for (int i = 0; i < buffLen; i++) {
        final short unsignedByte = buff.getUnsignedByte(i);
        if (unsignedByte != '\r' || i + 1 == buffLen || buff.getUnsignedByte(i + 1) != '\n') {
            normalized.appendUnsignedByte(unsignedByte);
        }
    }
    return normalized;
}
 
開發者ID:silentbalanceyh,項目名稱:vertx-zero,代碼行數:12,代碼來源:WebTestBase.java

示例10: onReceive

import io.vertx.core.buffer.Buffer; //導入方法依賴的package包/類
private void onReceive(Buffer buffer)
{
    if (bufferSize - size - buffer.length() >= 0) {
        buffer.getBytes(recvBuffer, size);
    } else {
        int newSize = bufferSize * (int) Math.ceil((size + buffer.length()) * 1.f / bufferSize);
        byte[] newBuffer = new byte[newSize];
        System.arraycopy(recvBuffer, 0, newBuffer, 0, size);
        buffer.getBytes(newBuffer, size);
        recvBuffer = newBuffer;
    }
    size += buffer.length();
    expandPending();
}
 
開發者ID:DavidQuan,項目名稱:vertx-ssdb,代碼行數:15,代碼來源:Connection.java

示例11: handle

import io.vertx.core.buffer.Buffer; //導入方法依賴的package包/類
public void handle(HttpServerRequest clientRequest, HttpServerResponse clientResponse,
			HttpResponse<Buffer> appResponse) {

		int statusCode = appResponse.statusCode();
		clientResponse.setStatusCode(statusCode);
//		clientResponse.setStatusMessage(appResponse.statusMessage());
//		System.out.println(appResponse.statusMessage());

		MultiMap appHeaders = appResponse.headers();
		appHeaders.forEach(entry -> {
			String k = entry.getKey();
			String v = entry.getValue();
//			System.out.println("Header Response:[" + k + "]=" + v);
			if ("Location".equalsIgnoreCase(k) && S.isNotBlank(v)) {
				String schemal = clientRequest.scheme();
				String host = clientRequest.host();
				clientResponse.putHeader("Location", v.replaceAll(HTTP_SCHEMAL_HOST_REG, schemal + "://" + host + "/"));
			} else
				clientResponse.putHeader(k, v);
		});
		
			

		clientResponse.setChunked(true);
		
		Buffer buff = appResponse.bodyAsBuffer();
		if (buff != null && buff.length() > 0)
			clientResponse.write(buff);

	}
 
開發者ID:troopson,項目名稱:etagate,代碼行數:31,代碼來源:RequestHandler.java

示例12: populate

import io.vertx.core.buffer.Buffer; //導入方法依賴的package包/類
public void populate(final Buffer buffer) {

        queue.add(buffer);
        availableBytes += buffer.length();
    }
 
開發者ID:trajano,項目名稱:app-ms,代碼行數:6,代碼來源:VertxBlockingInputStream.java


注:本文中的io.vertx.core.buffer.Buffer.length方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。