当前位置: 首页>>代码示例>>Java>>正文


Java BytesReference.get方法代码示例

本文整理汇总了Java中org.elasticsearch.common.bytes.BytesReference.get方法的典型用法代码示例。如果您正苦于以下问题:Java BytesReference.get方法的具体用法?Java BytesReference.get怎么用?Java BytesReference.get使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.elasticsearch.common.bytes.BytesReference的用法示例。


在下文中一共展示了BytesReference.get方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: findNextMarker

import org.elasticsearch.common.bytes.BytesReference; //导入方法依赖的package包/类
private static int findNextMarker(byte marker, int from, BytesReference data, int length) {
    for (int i = from; i < length; i++) {
        if (data.get(i) == marker) {
            return i;
        }
    }
    return -1;
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:9,代码来源:RestMultiSearchAction.java

示例2: bufferStartsWith

import org.elasticsearch.common.bytes.BytesReference; //导入方法依赖的package包/类
private static boolean bufferStartsWith(BytesReference buffer, int offset, String method) {
    char[] chars = method.toCharArray();
    for (int i = 0; i < chars.length; i++) {
        if (buffer.get(offset+ i) != chars[i]) {
            return false;
        }
    }

    return true;
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:11,代码来源:TcpTransport.java

示例3: isAncient

import org.elasticsearch.common.bytes.BytesReference; //导入方法依赖的package包/类
/** true if the bytes were compressed with LZF: only used before elasticsearch 2.0 */
private static boolean isAncient(BytesReference bytes) {
    return bytes.length() >= 3 &&
           bytes.get(0) == 'Z' &&
           bytes.get(1) == 'V' &&
           (bytes.get(2) == 0 || bytes.get(2) == 1);
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:8,代码来源:CompressorFactory.java

示例4: isCompressed

import org.elasticsearch.common.bytes.BytesReference; //导入方法依赖的package包/类
@Override
public boolean isCompressed(BytesReference bytes) {
    if (bytes.length() < HEADER.length) {
        return false;
    }
    for (int i = 0; i < HEADER.length; ++i) {
        if (bytes.get(i) != HEADER[i]) {
            return false;
        }
    }
    return true;
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:13,代码来源:DeflateCompressor.java

示例5: sliceTrimmingCarriageReturn

import org.elasticsearch.common.bytes.BytesReference; //导入方法依赖的package包/类
/**
 * Returns the sliced {@link BytesReference}. If the {@link XContentType} is JSON, the byte preceding the marker is checked to see
 * if it is a carriage return and if so, the BytesReference is sliced so that the carriage return is ignored
 */
private BytesReference sliceTrimmingCarriageReturn(BytesReference bytesReference, int from, int nextMarker, XContentType xContentType) {
    final int length;
    if (XContentType.JSON == xContentType && bytesReference.get(nextMarker - 1) == (byte) '\r') {
        length = nextMarker - from - 1;
    } else {
        length = nextMarker - from;
    }
    return bytesReference.slice(from, length);
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:14,代码来源:BulkRequest.java

示例6: findNextMarker

import org.elasticsearch.common.bytes.BytesReference; //导入方法依赖的package包/类
private int findNextMarker(byte marker, int from, BytesReference data, int length) {
    for (int i = from; i < length; i++) {
        if (data.get(i) == marker) {
            return i;
        }
    }
    return -1;
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:9,代码来源:BulkRequest.java

示例7: isCompressed

import org.elasticsearch.common.bytes.BytesReference; //导入方法依赖的package包/类
@Override
public boolean isCompressed(BytesReference bytes) {
    return bytes.length() >= 3 &&
            bytes.get(0) == LZFChunk.BYTE_Z &&
            bytes.get(1) == LZFChunk.BYTE_V &&
            (bytes.get(2) == LZFChunk.BLOCK_TYPE_COMPRESSED || bytes.get(2) == LZFChunk.BLOCK_TYPE_NON_COMPRESSED);
}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:8,代码来源:LZFCompressor.java

示例8: validateMessageHeader

import org.elasticsearch.common.bytes.BytesReference; //导入方法依赖的package包/类
/**
 * Validates the first N bytes of the message header and returns <code>false</code> if the message is
 * a ping message and has no payload ie. isn't a real user level message.
 *
 * @throws IllegalStateException if the message is too short, less than the header or less that the header plus the message size
 * @throws HttpOnTransportException if the message has no valid header and appears to be a HTTP message
 * @throws IllegalArgumentException if the message is greater that the maximum allowed frame size. This is dependent on the available
 * memory.
 */
public static boolean validateMessageHeader(BytesReference buffer) throws IOException {
    final int sizeHeaderLength = TcpHeader.MARKER_BYTES_SIZE + TcpHeader.MESSAGE_LENGTH_SIZE;
    if (buffer.length() < sizeHeaderLength) {
        throw new IllegalStateException("message size must be >= to the header size");
    }
    int offset = 0;
    if (buffer.get(offset) != 'E' || buffer.get(offset + 1) != 'S') {
        // special handling for what is probably HTTP
        if (bufferStartsWith(buffer, offset, "GET ") ||
                bufferStartsWith(buffer, offset, "POST ") ||
                bufferStartsWith(buffer, offset, "PUT ") ||
                bufferStartsWith(buffer, offset, "HEAD ") ||
                bufferStartsWith(buffer, offset, "DELETE ") ||
                bufferStartsWith(buffer, offset, "OPTIONS ") ||
                bufferStartsWith(buffer, offset, "PATCH ") ||
                bufferStartsWith(buffer, offset, "TRACE ")) {

            throw new HttpOnTransportException("This is not a HTTP port");
        }

        // we have 6 readable bytes, show 4 (should be enough)
        throw new StreamCorruptedException("invalid internal transport message format, got ("
                + Integer.toHexString(buffer.get(offset) & 0xFF) + ","
                + Integer.toHexString(buffer.get(offset + 1) & 0xFF) + ","
                + Integer.toHexString(buffer.get(offset + 2) & 0xFF) + ","
                + Integer.toHexString(buffer.get(offset + 3) & 0xFF) + ")");
    }

    final int dataLen;
    try (StreamInput input = buffer.streamInput()) {
        input.skip(TcpHeader.MARKER_BYTES_SIZE);
        dataLen = input.readInt();
        if (dataLen == PING_DATA_SIZE) {
            // discard the messages we read and continue, this is achieved by skipping the bytes
            // and returning null
            return false;
        }
    }

    if (dataLen <= 0) {
        throw new StreamCorruptedException("invalid data length: " + dataLen);
    }
    // safety against too large frames being sent
    if (dataLen > NINETY_PER_HEAP_SIZE) {
        throw new IllegalArgumentException("transport content length received [" + new ByteSizeValue(dataLen) + "] exceeded ["
                + new ByteSizeValue(NINETY_PER_HEAP_SIZE) + "]");
    }

    if (buffer.length() < dataLen + sizeHeaderLength) {
        throw new IllegalStateException("buffer must be >= to the message size but wasn't");
    }
    return true;
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:63,代码来源:TcpTransport.java

示例9: xContentType

import org.elasticsearch.common.bytes.BytesReference; //导入方法依赖的package包/类
/**
 * Guesses the content type based on the provided bytes.
 *
 * @deprecated the content type should not be guessed except for few cases where we effectively don't know the content type.
 * The REST layer should move to reading the Content-Type header instead. There are other places where auto-detection may be needed.
 * This method is deprecated to prevent usages of it from spreading further without specific reasons.
 */
@Deprecated
public static XContentType xContentType(BytesReference bytes) {
    int length = bytes.length();
    if (length == 0) {
        return null;
    }
    byte first = bytes.get(0);
    if (first == '{') {
        return XContentType.JSON;
    }
    if (length > 2 && first == SmileConstants.HEADER_BYTE_1 && bytes.get(1) == SmileConstants.HEADER_BYTE_2 && bytes.get(2) == SmileConstants.HEADER_BYTE_3) {
        return XContentType.SMILE;
    }
    if (length > 2 && first == '-' && bytes.get(1) == '-' && bytes.get(2) == '-') {
        return XContentType.YAML;
    }
    // CBOR logic similar to CBORFactory#hasCBORFormat
    if (first == CBORConstants.BYTE_OBJECT_INDEFINITE && length > 1){
        return XContentType.CBOR;
    }
    if (CBORConstants.hasMajorType(CBORConstants.MAJOR_TYPE_TAG, first) && length > 2) {
        // Actually, specific "self-describe tag" is a very good indicator
        if (first == (byte) 0xD9 && bytes.get(1) == (byte) 0xD9 && bytes.get(2) == (byte) 0xF7) {
            return XContentType.CBOR;
        }
    }
    // for small objects, some encoders just encode as major type object, we can safely
    // say its CBOR since it doesn't contradict SMILE or JSON, and its a last resort
    if (CBORConstants.hasMajorType(CBORConstants.MAJOR_TYPE_OBJECT, first)) {
        return XContentType.CBOR;
    }

    int jsonStart = 0;
    // JSON may be preceded by UTF-8 BOM
    if (length > 3 && first == (byte) 0xEF && bytes.get(1) == (byte) 0xBB && bytes.get(2) == (byte) 0xBF) {
        jsonStart = 3;
    }

    // a last chance for JSON
    for (int i = jsonStart; i < length; i++) {
        byte b = bytes.get(i);
        if (b == '{') {
            return XContentType.JSON;
        }
        if (Character.isWhitespace(b) == false) {
            break;
        }
    }
    return null;
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:58,代码来源:XContentFactory.java

示例10: xContentType

import org.elasticsearch.common.bytes.BytesReference; //导入方法依赖的package包/类
/**
 * Guesses the content type based on the provided bytes.
 */
public static XContentType xContentType(BytesReference bytes) {
    int length = bytes.length();
    if (length == 0) {
        return null;
    }
    byte first = bytes.get(0);
    if (first == '{') {
        return XContentType.JSON;
    }
    if (length > 2 && first == SmileConstants.HEADER_BYTE_1 && bytes.get(1) == SmileConstants.HEADER_BYTE_2 && bytes.get(2) == SmileConstants.HEADER_BYTE_3) {
        return XContentType.SMILE;
    }
    if (length > 2 && first == '-' && bytes.get(1) == '-' && bytes.get(2) == '-') {
        return XContentType.YAML;
    }
    // CBOR logic similar to CBORFactory#hasCBORFormat
    if (first == CBORConstants.BYTE_OBJECT_INDEFINITE && length > 1){
        return XContentType.CBOR;
    }
    if (CBORConstants.hasMajorType(CBORConstants.MAJOR_TYPE_TAG, first) && length > 2) {
        // Actually, specific "self-describe tag" is a very good indicator
        if (first == (byte) 0xD9 && bytes.get(1) == (byte) 0xD9 && bytes.get(2) == (byte) 0xF7) {
            return XContentType.CBOR;
        }
    }
    // for small objects, some encoders just encode as major type object, we can safely
    // say its CBOR since it doesn't contradict SMILE or JSON, and its a last resort
    if (CBORConstants.hasMajorType(CBORConstants.MAJOR_TYPE_OBJECT, first)) {
        return XContentType.CBOR;
    }

    int jsonStart = 0;
    // JSON may be preceded by UTF-8 BOM
    if (length > 3 && first == (byte) 0xEF && bytes.get(1) == (byte) 0xBB && bytes.get(2) == (byte) 0xBF) {
        jsonStart = 3;
    }

    // a last chance for JSON
    for (int i = jsonStart; i < length; i++) {
        byte b = bytes.get(i);
        if (b == '{') {
            return XContentType.JSON;
        }
        if (Character.isWhitespace(b) == false) {
            break;
        }
    }
    return null;
}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:53,代码来源:XContentFactory.java


注:本文中的org.elasticsearch.common.bytes.BytesReference.get方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。