Package com.netflix.zeno.fastblob.record

Examples of com.netflix.zeno.fastblob.record.FastBlobDeserializationRecord


    }

    private final ThreadLocal<FastBlobDeserializationRecord> recHandle = new ThreadLocal<FastBlobDeserializationRecord>();

    private FastBlobDeserializationRecord getRec() {
        FastBlobDeserializationRecord rec = recHandle.get();
        if(rec == null) {
            rec = new FastBlobDeserializationRecord(fastBlobSchema, byteData);
            recHandle.set(rec);
        }

        return rec;
    }
View Full Code Here


     * @param ordinalMap
     */
    public void populateFromByteOrdinalMap(final ByteArrayOrdinalMap ordinalMap) {
        ByteDataBuffer byteData = ordinalMap.getByteData();
        AtomicLongArray pointersAndOrdinals = ordinalMap.getPointersAndOrdinals();
        FastBlobDeserializationRecord rec = new FastBlobDeserializationRecord(getSchema(), byteData.getUnderlyingArray());
        for (int i = 0; i < pointersAndOrdinals.length(); i++) {
            long pointerAndOrdinal = pointersAndOrdinals.get(i);
            if(!ByteArrayOrdinalMap.isPointerAndOrdinalEmpty(pointerAndOrdinal)) {
                long pointer = ByteArrayOrdinalMap.getPointer(pointerAndOrdinal);
                int ordinal = ByteArrayOrdinalMap.getOrdinal(pointerAndOrdinal);

                int sizeOfData = VarInt.readVInt(byteData.getUnderlyingArray(), pointer);
                pointer += VarInt.sizeOfVInt(sizeOfData);

                rec.position(pointer);

                add(ordinal, rec);
            }
        }
    }
View Full Code Here

        list.add(new TypeA(6, 6));
        list.add(new TypeA(5, 5));

        listSerializer.serialize(list, rec);

        FastBlobDeserializationRecord deserializationRec = createDeserializationRecord(listSchema, rec);

        FastBlobDeserializationRecord remappedRec = remapOrdinals(listSchema, deserializationRec);

        List<TypeA> typeAs = listSerializer.deserialize(remappedRec);

        Assert.assertEquals(6, typeAs.size());
        Assert.assertEquals(new TypeA(1, 1), typeAs.get(0));
View Full Code Here

        VarInt.writeVInt(fromDataBuffer, 100);
        VarInt.writeVInt(fromDataBuffer, (int)buf.length());

        fromDataBuffer.copyFrom(buf);

        FastBlobDeserializationRecord rec = new FastBlobDeserializationRecord(schema, fromDataBuffer.getUnderlyingArray());
        rec.position(0);

        ByteDataBuffer toDataBuffer = new ByteDataBuffer();
        new OrdinalRemapper(ordinalMapping).remapOrdinals(rec, toDataBuffer);
        return toDataBuffer;
    }
View Full Code Here

        set.add(new TypeA(4, 4));
        set.add(null);

        setSerializer.serialize(set, rec);

        FastBlobDeserializationRecord deserializationRec = createDeserializationRecord(setSchema, rec);

        FastBlobDeserializationRecord remappedRec = remapOrdinals(setSchema, deserializationRec);

        Set<TypeA> typeAs = setSerializer.deserialize(remappedRec);

        Assert.assertEquals(3, typeAs.size());
        Assert.assertTrue(typeAs.contains(new TypeA(3, 3)));
View Full Code Here

        map.put(null, new TypeA(1, 1));
        map.put(new TypeA(4, 4), null);

        mapSerializer.serialize(map, rec);

        FastBlobDeserializationRecord deserializationRec = createDeserializationRecord(mapSchema, rec);

        FastBlobDeserializationRecord remappedRec = remapOrdinals(mapSchema, deserializationRec);

        Map<TypeA, TypeA> typeAs = mapSerializer.deserialize(remappedRec);

        Assert.assertEquals(4, typeAs.size());
        Assert.assertEquals(new TypeA(0, 0), typeAs.get(new TypeA(3, 3)));
View Full Code Here

        TypeD typeD = new TypeD(100, new TypeA(3, 3));

        serializer.serialize(typeD, rec);

        FastBlobDeserializationRecord deserializationRec = createDeserializationRecord(typeDSchema, rec);

        FastBlobDeserializationRecord remappedRec = remapOrdinals(typeDSchema, deserializationRec);

        TypeD deserializedTypeD = serializer.deserialize(remappedRec);

        Assert.assertEquals(Integer.valueOf(100), deserializedTypeD.getVal());
        Assert.assertEquals(new TypeA(1, 1), deserializedTypeD.getTypeA());
View Full Code Here

    }

    private FastBlobDeserializationRecord createDeserializationRecord(FastBlobSchema schema, FastBlobSerializationRecord rec) {
        ByteDataBuffer originalRecord  = new ByteDataBuffer();
        rec.writeDataTo(originalRecord);
        FastBlobDeserializationRecord deserializationRec = new FastBlobDeserializationRecord(schema, originalRecord.getUnderlyingArray());
        deserializationRec.position(0);
        return deserializationRec;
    }
View Full Code Here

    }

    private FastBlobDeserializationRecord remapOrdinals(FastBlobSchema schema, FastBlobDeserializationRecord deserializationRec) {
        ByteDataBuffer remappedRecordSpace = new ByteDataBuffer();
        ordinalRemapper.remapOrdinals(deserializationRec, remappedRecordSpace);
        FastBlobDeserializationRecord remappedRec = new FastBlobDeserializationRecord(schema, remappedRecordSpace.getUnderlyingArray());
        remappedRec.position(0);
        return remappedRec;
    }
View Full Code Here

        StreamingByteData byteData = new StreamingByteData(is, deserializationBufferSizeHint);
        return byteData;
    }

    private void readTypeStateObjects(StreamingByteData byteData,FastBlobSchema schema) throws IOException {
        FastBlobDeserializationRecord rec = new FastBlobDeserializationRecord(schema, byteData);
        LazyTypeDataState<?> typeDataState = stateEngine.getTypeDataState(schema.getName());

        int numObjects = VarInt.readVInt(byteData);

        if(numObjects != 0 && eventHandler != null) {
            eventHandler.addedObjects(schema.getName(), numObjects);
        }

        int currentOrdinal = 0;

        for(int j=0;j<numObjects;j++) {
            int currentOrdinalDelta = VarInt.readVInt(byteData);

            currentOrdinal += currentOrdinalDelta;

            int objectSize = rec.position(byteData.currentStreamPosition());

            if(typeDataState != null) {
                typeDataState.add(currentOrdinal, byteData, byteData.currentStreamPosition(), objectSize);
            }
View Full Code Here

TOP

Related Classes of com.netflix.zeno.fastblob.record.FastBlobDeserializationRecord

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.