예제 #1
0
 private void AppendPayLoad(StatefulBuffer target, Pointer4 pointer, ByteArrayBuffer
                            payLoad)
 {
     target.WriteInt(payLoad.Length());
     target.WriteInt(pointer.Id());
     target.WriteInt(pointer.Address());
     target.Append(payLoad._buffer);
 }
 public sealed override void WriteNew(Transaction trans, Pointer4 pointer, ClassMetadata
                                      classMetadata, ByteArrayBuffer buffer)
 {
     WriteEncrypt(buffer, pointer.Address(), 0);
     if (classMetadata == null)
     {
         return;
     }
     classMetadata.AddToIndex(trans, pointer.Id());
 }
        public sealed override void WriteUpdate(Transaction trans, Pointer4 pointer, ClassMetadata
                                                classMetadata, ArrayType arrayType, ByteArrayBuffer buffer)
        {
            int address = pointer.Address();

            if (address == 0)
            {
                address = AllocateSlotForUserObjectUpdate(trans, pointer.Id(), pointer.Length()).
                          Address();
            }
            WriteEncrypt(buffer, address, 0);
        }