コード例 #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);
        }
コード例 #2
0
        internal override long GetBlopLength(CBlop aBlop)
        {
            var aFileInfo = this.GetObjectFileInfo(aBlop);
            var aLength   = aFileInfo.Exists
                     ? aFileInfo.Length
                     : 0
            ;

            return(aLength);
        }
コード例 #3
0
ファイル: Storage.cs プロジェクト: DeepSeeBee/cb_orm
 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();
         }
     }
 }
コード例 #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);
        }
コード例 #5
0
 protected override void Delete(CBlop aBlop)
 {
     this.GetObjectFileInfo(aBlop).Delete();
 }
コード例 #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.
 }
コード例 #7
0
ファイル: Storage.cs プロジェクト: DeepSeeBee/cb_orm
 public abstract void Load(CBlop aBlop);
コード例 #8
0
ファイル: Storage.cs プロジェクト: DeepSeeBee/cb_orm
 protected override CBlopOutputStream NewBlopOutputStream(CBlop aBlop)
 => throw new InvalidOperationException();
コード例 #9
0
ファイル: Storage.cs プロジェクト: DeepSeeBee/cb_orm
 internal override Stream NewBlopInputStream(CBlop aBlop)
 => Stream.Null;
コード例 #10
0
ファイル: Storage.cs プロジェクト: DeepSeeBee/cb_orm
 internal override long GetBlopLength(CBlop aBlop)
 => 0;
コード例 #11
0
ファイル: Storage.cs プロジェクト: DeepSeeBee/cb_orm
 protected override void Delete(CBlop aBlop)
 => throw new InvalidOperationException();
コード例 #12
0
ファイル: Storage.cs プロジェクト: DeepSeeBee/cb_orm
 public override void Load(CBlop aBlop)
 => throw new InvalidOperationException();
コード例 #13
0
ファイル: Storage.cs プロジェクト: DeepSeeBee/cb_orm
 protected abstract void Delete(CBlop aBlop);
コード例 #14
0
ファイル: Storage.cs プロジェクト: DeepSeeBee/cb_orm
 protected abstract CBlopOutputStream NewBlopOutputStream(CBlop aBlop);
コード例 #15
0
ファイル: Storage.cs プロジェクト: DeepSeeBee/cb_orm
 internal abstract Stream NewBlopInputStream(CBlop aBlop);
コード例 #16
0
ファイル: Storage.cs プロジェクト: DeepSeeBee/cb_orm
 internal abstract long GetBlopLength(CBlop aBlop);