Exemplo n.º 1
0
        protected override CBlopOutputStream NewBlopOutputStream(CBlop aBlop)
        {
            var aFileInfo         = this.GetObjectFileInfo(aBlop);
            var aStream           = File.OpenWrite(aFileInfo.FullName);
            var aBlopOutputStream = new CFileSystemBlopOutputStream(aStream);

            return(aBlopOutputStream);
        }
Exemplo n.º 2
0
        internal override long GetBlopLength(CBlop aBlop)
        {
            var aFileInfo = this.GetObjectFileInfo(aBlop);
            var aLength   = aFileInfo.Exists
                     ? aFileInfo.Length
                     : 0
            ;

            return(aLength);
        }
Exemplo n.º 3
0
 internal void VisitSave(CBlop aBlop, Stream aStream)
 {
     if (aBlop.IsLocallyDeleted)
     {
         this.Delete(aBlop);
     }
     else
     {
         using (var aBlopOutputStream = this.NewBlopOutputStream(aBlop))
         {
             aStream.CopyTo(aBlopOutputStream.Stream);
             aBlopOutputStream.Commit();
         }
     }
 }
Exemplo n.º 4
0
        internal override Stream NewBlopInputStream(CBlop aBlop)
        {
            var aFileInfo = this.GetObjectFileInfo(aBlop);

            if (aFileInfo.IsNullRef())
            {
                return(Stream.Null);
            }
            aFileInfo.Refresh();
            var aStream = aFileInfo.Exists
                        ? (Stream)File.OpenRead(aFileInfo.FullName)
                        : Stream.Null
            ;

            return(aStream);
        }
Exemplo n.º 5
0
 protected override void Delete(CBlop aBlop)
 {
     this.GetObjectFileInfo(aBlop).Delete();
 }
Exemplo n.º 6
0
 public override void Load(CBlop aBlop)
 {
     // The blop will request the input stream or the length as soon as it is used.
     // Not sure if we need some special actions for databases.
 }
Exemplo n.º 7
0
 public abstract void Load(CBlop aBlop);
Exemplo n.º 8
0
 protected override CBlopOutputStream NewBlopOutputStream(CBlop aBlop)
 => throw new InvalidOperationException();
Exemplo n.º 9
0
 internal override Stream NewBlopInputStream(CBlop aBlop)
 => Stream.Null;
Exemplo n.º 10
0
 internal override long GetBlopLength(CBlop aBlop)
 => 0;
Exemplo n.º 11
0
 protected override void Delete(CBlop aBlop)
 => throw new InvalidOperationException();
Exemplo n.º 12
0
 public override void Load(CBlop aBlop)
 => throw new InvalidOperationException();
Exemplo n.º 13
0
 protected abstract void Delete(CBlop aBlop);
Exemplo n.º 14
0
 protected abstract CBlopOutputStream NewBlopOutputStream(CBlop aBlop);
Exemplo n.º 15
0
 internal abstract Stream NewBlopInputStream(CBlop aBlop);
Exemplo n.º 16
0
 internal abstract long GetBlopLength(CBlop aBlop);