Ejemplo n.º 1
0
        public IStorable Deserialize(Did dbId, SerializedStorable serializedStorable)
        {
            var storable = new Storable();

            storable.Oid = serializedStorable.Oid;

            int streamLength = serializedStorable.Data.Length;
            int position     = 0;

            while (position < streamLength)
            {
                var id     = BitConverter.ToInt64(serializedStorable.Data, position);
                var length = BitConverter.ToInt32(serializedStorable.Data, position + _longSize);
                var data   = new byte[length];
                Buffer.BlockCopy(serializedStorable.Data, position + _longSize + _intSize, data, 0, length);
                position += _longSize + _intSize + length;

                var property = _metadata.Databases[dbId].Schema.Properties.Single(p => p.Key.Id == id).Value;
                storable.Properties.Add(property, DeserializeValueType(property, data));
            }

            return(storable);
        }
Ejemplo n.º 2
0
 public void Remove(Did did, SerializedStorable storable)
 {
     _storages[did].BeginTransaction();
     _storages[did].Delete(storable.Oid);
     _storages[did].CommitTransaction();
 }
Ejemplo n.º 3
0
 public void Save(Did did, SerializedStorable storable)
 {
     _storages[did].BeginTransaction();
     _storages[did].Save(storable.Oid, storable.Data);
     _storages[did].CommitTransaction();
 }
Ejemplo n.º 4
0
 public void Remove(Did did, SerializedStorable storable)
 {
     _storages[did].Remove(storable.Oid);
 }
Ejemplo n.º 5
0
 public void Save(Did did, SerializedStorable storable)
 {
     _storages[did].AddOrUpdate(storable.Oid, storable.Data);
 }