Пример #1
0
        private static ByteBuffer ReadDynamic(AbstractDynamicStore store, long reference, ByteBuffer buffer, PageCursor page)
        {
            if (buffer == null)
            {
                buffer = ByteBuffer.allocate(512);
            }
            else
            {
                buffer.clear();
            }
            DynamicRecord record = store.NewRecord();

            do
            {
                //We need to load forcefully here since otherwise we can have inconsistent reads
                //for properties across blocks, see org.neo4j.graphdb.ConsistentPropertyReadsIT
                store.GetRecordByCursor(reference, record, RecordLoad.FORCE, page);
                reference = record.NextBlock;
                sbyte[] data = record.Data;
                if (buffer.remaining() < data.Length)
                {
                    buffer = Grow(buffer, data.Length);
                }
                buffer.put(data, 0, data.Length);
            } while (reference != NO_ID);
            return(buffer);
        }