Ejemplo n.º 1
0
        public void CopyTo(ref VarLenType dst)
        {
            var fulllength = length * sizeof(int);

            Buffer.MemoryCopy(Unsafe.AsPointer(ref this),
                              Unsafe.AsPointer(ref dst), fulllength, fulllength);
        }
Ejemplo n.º 2
0
        static unsafe void Sample1()
        {
            FasterKV <VarLenType, VarLenType, int[], int[], Empty, VarLenFunctions> fht;
            IDevice log;

            log = Devices.CreateLogDevice("hlog.log", deleteOnClose: true);
            fht = new FasterKV <VarLenType, VarLenType, int[], int[], Empty, VarLenFunctions>
                      (128, new VarLenFunctions(),
                      new LogSettings {
                LogDevice = log, MemorySizeBits = 17, PageSizeBits = 12
            },
                      null, null,
                      new VarLenTypeComparer(),
                      new VariableLengthStructSettings <VarLenType, VarLenType>
            {
                keyLength = new VarLenLength(), valueLength = new VarLenLength()
            }
                      );
            fht.StartSession();


            int[] input = default(int[]);

            Random r = new Random(100);

            for (int i = 0; i < 5000; i++)
            {
                if (i == 2968)
                {
                }
                var            keylen = 2 + r.Next(10);
                int *          keyval = stackalloc int[keylen];
                ref VarLenType key1   = ref *(VarLenType *)keyval;
                key1.length = keylen;
                for (int j = 1; j < keylen; j++)
                {
                    *(keyval + j) = i;
                }

                var            len   = 2 + r.Next(10);
                int *          val   = stackalloc int[len];
                ref VarLenType value = ref *(VarLenType *)val;