From 84b4798eaf7d06afd887e02d2bddf65b1113759b Mon Sep 17 00:00:00 2001 From: alcexhim Date: Sat, 5 Jul 2014 19:12:02 -0400 Subject: [PATCH] Still don't know how to properly handle position --- .../UniversalEditor.Core/Accessors/FileAccessor.cs | 6 ++---- .../UniversalEditor.Core/Accessors/MemoryAccessor.cs | 6 +++++- .../UniversalEditor.Core/Accessors/StreamAccessor.cs | 12 ++++++++---- .../UniversalEditor.Core/Accessors/StringAccessor.cs | 4 ++++ 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/CSharp/Libraries/UniversalEditor.Core/Accessors/FileAccessor.cs b/CSharp/Libraries/UniversalEditor.Core/Accessors/FileAccessor.cs index 82200924..c3856648 100644 --- a/CSharp/Libraries/UniversalEditor.Core/Accessors/FileAccessor.cs +++ b/CSharp/Libraries/UniversalEditor.Core/Accessors/FileAccessor.cs @@ -9,11 +9,9 @@ namespace UniversalEditor.Accessors { public class FileAccessor : Accessor { - public override long Position + protected override long GetPosition() { - get { return mvarFileStream.Position; } - set { mvarFileStream.Position = value; - } + return mvarFileStream.Position; } public override long Length { diff --git a/CSharp/Libraries/UniversalEditor.Core/Accessors/MemoryAccessor.cs b/CSharp/Libraries/UniversalEditor.Core/Accessors/MemoryAccessor.cs index 6f2b4346..a29c507e 100644 --- a/CSharp/Libraries/UniversalEditor.Core/Accessors/MemoryAccessor.cs +++ b/CSharp/Libraries/UniversalEditor.Core/Accessors/MemoryAccessor.cs @@ -11,6 +11,10 @@ namespace UniversalEditor.Accessors private byte[] _data = new byte[0]; private long ptr = 0; + protected override long GetPosition() + { + return ptr; + } public override long Length { get { return _data.Length; } @@ -36,7 +40,7 @@ namespace UniversalEditor.Accessors _data = data; } - [DebuggerNonUserCode()] + // [DebuggerNonUserCode()] public override void Seek(long length, SeekOrigin position) { long start = 0; diff --git a/CSharp/Libraries/UniversalEditor.Core/Accessors/StreamAccessor.cs b/CSharp/Libraries/UniversalEditor.Core/Accessors/StreamAccessor.cs index b8c082d4..61c4845f 100644 --- a/CSharp/Libraries/UniversalEditor.Core/Accessors/StreamAccessor.cs +++ b/CSharp/Libraries/UniversalEditor.Core/Accessors/StreamAccessor.cs @@ -12,6 +12,10 @@ namespace UniversalEditor.Accessors private System.IO.Stream mvarBaseStream = null; public System.IO.Stream BaseStream { get { return mvarBaseStream; } } + protected override long GetPosition() + { + return mvarBaseStream.Position; + } public StreamAccessor() { mvarBaseStream = new System.IO.MemoryStream(); @@ -24,10 +28,10 @@ namespace UniversalEditor.Accessors public override long Length { get { return mvarBaseStream.Length; } - set { throw new InvalidOperationException(); } + set { mvarBaseStream.SetLength(value); } } - [DebuggerNonUserCode()] + // [DebuggerNonUserCode()] public override void Seek(long offset, SeekOrigin position) { System.IO.SeekOrigin origin = System.IO.SeekOrigin.Begin; @@ -56,14 +60,14 @@ namespace UniversalEditor.Accessors { // TODO: will ct ever be != count? should we add ct to Position instead of count?? int ct = mvarBaseStream.Read(buffer, start, count); - Position += count; + // Position += count; return count; } internal override int WriteInternal(byte[] buffer, int start, int count) { mvarBaseStream.Write(buffer, start, count); - Position += count; + // Position += count; return count; } diff --git a/CSharp/Libraries/UniversalEditor.Core/Accessors/StringAccessor.cs b/CSharp/Libraries/UniversalEditor.Core/Accessors/StringAccessor.cs index 74b7ff30..afde7ddc 100644 --- a/CSharp/Libraries/UniversalEditor.Core/Accessors/StringAccessor.cs +++ b/CSharp/Libraries/UniversalEditor.Core/Accessors/StringAccessor.cs @@ -10,6 +10,10 @@ namespace UniversalEditor.Accessors private char[] _data = new char[0]; private long ptr = 0; + protected override long GetPosition() + { + return ptr; + } public override long Length { get { return _data.Length; }