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


Java DataOutputPlus.writeUnsignedVInt方法代码示例

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


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

示例1: serializeValuesWithoutSize

import org.apache.cassandra.io.util.DataOutputPlus; //导入方法依赖的package包/类
void serializeValuesWithoutSize(ClusteringPrefix clustering, DataOutputPlus out, int version, List<AbstractType<?>> types) throws IOException
{
    int offset = 0;
    int clusteringSize = clustering.size();
    // serialize in batches of 32, to avoid garbage when deserializing headers
    while (offset < clusteringSize)
    {
        // we micro-batch the headers, so that we can incur fewer method calls,
        // and generate no garbage on deserialization;
        // we piggyback on vint encoding so that, typically, only 1 byte is used per 32 clustering values,
        // i.e. more than we ever expect to see
        int limit = Math.min(clusteringSize, offset + 32);
        out.writeUnsignedVInt(makeHeader(clustering, offset, limit));
        while (offset < limit)
        {
            ByteBuffer v = clustering.get(offset);
            if (v != null && v.hasRemaining())
                types.get(offset).writeValue(v, out);
            offset++;
        }
    }
}
 
开发者ID:Netflix,项目名称:sstable-adaptor,代码行数:23,代码来源:ClusteringPrefix.java

示例2: serialize

import org.apache.cassandra.io.util.DataOutputPlus; //导入方法依赖的package包/类
public void serialize(ColumnFilter selection, DataOutputPlus out, int version) throws IOException
{
    out.writeByte(makeHeaderByte(selection));

    if (selection.queried != null)
    {
        Columns.serializer.serialize(selection.queried.statics, out);
        Columns.serializer.serialize(selection.queried.regulars, out);
    }

    if (selection.subSelections != null)
    {
        out.writeUnsignedVInt(selection.subSelections.size());
        for (ColumnSubselection subSel : selection.subSelections.values())
            ColumnSubselection.serializer.serialize(subSel, out, version);
    }
}
 
开发者ID:Netflix,项目名称:sstable-adaptor,代码行数:18,代码来源:ColumnFilter.java

示例3: serialize

import org.apache.cassandra.io.util.DataOutputPlus; //导入方法依赖的package包/类
private void serialize(RangeTombstoneMarker marker, SerializationHeader header, DataOutputPlus out, long previousUnfilteredSize, int version)
throws IOException
{
    out.writeByte((byte)IS_MARKER);
    ClusteringBoundOrBoundary.serializer.serialize(marker.clustering(), out, version, header.clusteringTypes());

    if (header.isForSSTable())
    {
        out.writeUnsignedVInt(serializedMarkerBodySize(marker, header, previousUnfilteredSize, version));
        out.writeUnsignedVInt(previousUnfilteredSize);
    }

    if (marker.isBoundary())
    {
        RangeTombstoneBoundaryMarker bm = (RangeTombstoneBoundaryMarker)marker;
        header.writeDeletionTime(bm.endDeletionTime(), out);
        header.writeDeletionTime(bm.startDeletionTime(), out);
    }
    else
    {
        header.writeDeletionTime(((RangeTombstoneBoundMarker)marker).deletionTime(), out);
    }
}
 
开发者ID:Netflix,项目名称:sstable-adaptor,代码行数:24,代码来源:UnfilteredSerializer.java

示例4: serialize

import org.apache.cassandra.io.util.DataOutputPlus; //导入方法依赖的package包/类
public void serialize(ColumnFilter selection, DataOutputPlus out, int version) throws IOException
{
    out.writeByte(makeHeaderByte(selection));

    if (selection.selection != null)
    {
        Columns.serializer.serialize(selection.selection.statics, out);
        Columns.serializer.serialize(selection.selection.regulars, out);
    }

    if (selection.subSelections != null)
    {
        out.writeUnsignedVInt(selection.subSelections.size());
        for (ColumnSubselection subSel : selection.subSelections.values())
            ColumnSubselection.serializer.serialize(subSel, out, version);
    }
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:18,代码来源:ColumnFilter.java

示例5: serialize

import org.apache.cassandra.io.util.DataOutputPlus; //导入方法依赖的package包/类
public void serialize(DataLimits limits, DataOutputPlus out, int version) throws IOException
{
    out.writeByte(limits.kind().ordinal());
    switch (limits.kind())
    {
        case CQL_LIMIT:
        case CQL_PAGING_LIMIT:
            CQLLimits cqlLimits = (CQLLimits)limits;
            out.writeUnsignedVInt(cqlLimits.rowLimit);
            out.writeUnsignedVInt(cqlLimits.perPartitionLimit);
            out.writeBoolean(cqlLimits.isDistinct);
            if (limits.kind() == Kind.CQL_PAGING_LIMIT)
            {
                CQLPagingLimits pagingLimits = (CQLPagingLimits)cqlLimits;
                ByteBufferUtil.writeWithVIntLength(pagingLimits.lastReturnedKey, out);
                out.writeUnsignedVInt(pagingLimits.lastReturnedKeyRemaining);
            }
            break;
        case THRIFT_LIMIT:
        case SUPER_COLUMN_COUNTING_LIMIT:
            ThriftLimits thriftLimits = (ThriftLimits)limits;
            out.writeUnsignedVInt(thriftLimits.partitionLimit);
            out.writeUnsignedVInt(thriftLimits.cellPerPartitionLimit);
            break;
    }
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:27,代码来源:DataLimits.java

示例6: serialize

import org.apache.cassandra.io.util.DataOutputPlus; //导入方法依赖的package包/类
private void serialize(RangeTombstoneMarker marker, SerializationHeader header, DataOutputPlus out, long previousUnfilteredSize, int version)
throws IOException
{
    out.writeByte((byte)IS_MARKER);
    RangeTombstone.Bound.serializer.serialize(marker.clustering(), out, version, header.clusteringTypes());

    if (header.isForSSTable())
    {
        out.writeUnsignedVInt(serializedMarkerBodySize(marker, header, previousUnfilteredSize, version));
        out.writeUnsignedVInt(previousUnfilteredSize);
    }

    if (marker.isBoundary())
    {
        RangeTombstoneBoundaryMarker bm = (RangeTombstoneBoundaryMarker)marker;
        header.writeDeletionTime(bm.endDeletionTime(), out);
        header.writeDeletionTime(bm.startDeletionTime(), out);
    }
    else
    {
        header.writeDeletionTime(((RangeTombstoneBoundMarker)marker).deletionTime(), out);
    }
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:24,代码来源:UnfilteredSerializer.java

示例7: serialize

import org.apache.cassandra.io.util.DataOutputPlus; //导入方法依赖的package包/类
public void serialize(Slices slices, DataOutputPlus out, int version) throws IOException
{
    int size = slices.size();
    out.writeUnsignedVInt(size);

    if (size == 0)
        return;

    List<AbstractType<?>> types = slices == ALL
                                ? Collections.<AbstractType<?>>emptyList()
                                : ((ArrayBackedSlices)slices).comparator.subtypes();

    for (Slice slice : slices)
        Slice.serializer.serialize(slice, out, version, types);
}
 
开发者ID:Netflix,项目名称:sstable-adaptor,代码行数:16,代码来源:Slices.java

示例8: serializeForCache

import org.apache.cassandra.io.util.DataOutputPlus; //导入方法依赖的package包/类
@Override
public void serializeForCache(DataOutputPlus out) throws IOException
{
    out.writeUnsignedVInt(position);
    out.writeByte(CACHE_INDEXED);

    out.writeUnsignedVInt(headerLength);
    DeletionTime.serializer.serialize(deletionTime, out);
    out.writeUnsignedVInt(columnsIndexCount());

    for (IndexInfo indexInfo : columnsIndex)
        idxInfoSerializer.serialize(indexInfo, out);
}
 
开发者ID:Netflix,项目名称:sstable-adaptor,代码行数:14,代码来源:RowIndexEntry.java

示例9: serialize

import org.apache.cassandra.io.util.DataOutputPlus; //导入方法依赖的package包/类
@Override
public void serialize(DataOutputPlus out, IndexInfo.Serializer idxInfoSerializer, ByteBuffer indexInfo) throws IOException
{
    out.writeUnsignedVInt(position);

    out.writeUnsignedVInt(fieldsSerializedSize + indexInfo.limit());

    out.writeUnsignedVInt(headerLength);
    DeletionTime.serializer.serialize(deletionTime, out);
    out.writeUnsignedVInt(columnsIndexCount);

    out.write(indexInfo);
}
 
开发者ID:Netflix,项目名称:sstable-adaptor,代码行数:14,代码来源:RowIndexEntry.java

示例10: serialize

import org.apache.cassandra.io.util.DataOutputPlus; //导入方法依赖的package包/类
public void serialize(Version version, Component header, DataOutputPlus out) throws IOException
{
    EncodingStats.serializer.serialize(header.stats, out);

    writeType(header.keyType, out);
    out.writeUnsignedVInt(header.clusteringTypes.size());
    for (AbstractType<?> type : header.clusteringTypes)
        writeType(type, out);

    writeColumnsWithTypes(header.staticColumns, out);
    writeColumnsWithTypes(header.regularColumns, out);
}
 
开发者ID:Netflix,项目名称:sstable-adaptor,代码行数:13,代码来源:SerializationHeader.java

示例11: writeColumnsWithTypes

import org.apache.cassandra.io.util.DataOutputPlus; //导入方法依赖的package包/类
private void writeColumnsWithTypes(Map<ByteBuffer, AbstractType<?>> columns, DataOutputPlus out) throws IOException
{
    out.writeUnsignedVInt(columns.size());
    for (Map.Entry<ByteBuffer, AbstractType<?>> entry : columns.entrySet())
    {
        ByteBufferUtil.writeWithVIntLength(entry.getKey(), out);
        writeType(entry.getValue(), out);
    }
}
 
开发者ID:Netflix,项目名称:sstable-adaptor,代码行数:10,代码来源:SerializationHeader.java

示例12: serializeSubset

import org.apache.cassandra.io.util.DataOutputPlus; //导入方法依赖的package包/类
/**
 * If both ends have a pre-shared superset of the columns we are serializing, we can send them much
 * more efficiently. Both ends must provide the identically same set of columns.
 */
public void serializeSubset(Collection<ColumnDefinition> columns, Columns superset, DataOutputPlus out) throws IOException
{
    /**
     * We weight this towards small sets, and sets where the majority of items are present, since
     * we expect this to mostly be used for serializing result sets.
     *
     * For supersets with fewer than 64 columns, we encode a bitmap of *missing* columns,
     * which equates to a zero (single byte) when all columns are present, and otherwise
     * a positive integer that can typically be vint encoded efficiently.
     *
     * If we have 64 or more columns, we cannot neatly perform a bitmap encoding, so we just switch
     * to a vint encoded set of deltas, either adding or subtracting (whichever is most efficient).
     * We indicate this switch by sending our bitmap with every bit set, i.e. -1L
     */
    int columnCount = columns.size();
    int supersetCount = superset.size();
    if (columnCount == supersetCount)
    {
        out.writeUnsignedVInt(0);
    }
    else if (supersetCount < 64)
    {
        out.writeUnsignedVInt(encodeBitmap(columns, superset, supersetCount));
    }
    else
    {
        serializeLargeSubset(columns, columnCount, superset, supersetCount, out);
    }
}
 
开发者ID:Netflix,项目名称:sstable-adaptor,代码行数:34,代码来源:Columns.java

示例13: serializeInternal

import org.apache.cassandra.io.util.DataOutputPlus; //导入方法依赖的package包/类
protected void serializeInternal(DataOutputPlus out, int version) throws IOException
{
    ClusteringComparator comparator = (ClusteringComparator)clusterings.comparator();
    out.writeUnsignedVInt(clusterings.size());
    for (Clustering clustering : clusterings)
        Clustering.serializer.serialize(clustering, out, version, comparator.subtypes());
}
 
开发者ID:Netflix,项目名称:sstable-adaptor,代码行数:8,代码来源:ClusteringIndexNamesFilter.java

示例14: serialize

import org.apache.cassandra.io.util.DataOutputPlus; //导入方法依赖的package包/类
public void serialize(EncodedHintMessage message, DataOutputPlus out, int version) throws IOException
{
    if (version != message.version)
        throw new IllegalArgumentException("serialize() called with non-matching version " + version);

    UUIDSerializer.serializer.serialize(message.hostId, out, version);
    out.writeUnsignedVInt(message.hint.remaining());
    out.write(message.hint);
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:10,代码来源:EncodedHintMessage.java

示例15: serialize

import org.apache.cassandra.io.util.DataOutputPlus; //导入方法依赖的package包/类
public void serialize(HintMessage message, DataOutputPlus out, int version) throws IOException
{
    Objects.requireNonNull(message.hint); // we should never *send* a HintMessage with null hint

    UUIDSerializer.serializer.serialize(message.hostId, out, version);

    /*
     * We are serializing the hint size so that the receiver of the message could gracefully handle
     * deserialize failure when a table had been dropped, by simply skipping the unread bytes.
     */
    out.writeUnsignedVInt(Hint.serializer.serializedSize(message.hint, version));

    Hint.serializer.serialize(message.hint, out, version);
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:15,代码来源:HintMessage.java


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