private Stream OpenStream(string filePath, FileMode fmode, StreamAccess access, StreamShare share, int _) { var faccess = FileAccess.Read; switch (access) { case StreamAccess.Read: faccess = FileAccess.Read; break; case StreamAccess.ReadWrite: faccess = FileAccess.ReadWrite; break; case StreamAccess.Write: faccess = FileAccess.Write; break; } FileShare fshare = FileShare.None; switch (share) { case StreamShare.None: fshare = FileShare.None; break; case StreamShare.Read: fshare = FileShare.Read; break; case StreamShare.ReadWrite: fshare = FileShare.ReadWrite; break; case StreamShare.Write: fshare = FileShare.Write; break; } return(File.Open(filePath, fmode, faccess, fshare)); }
public RetryStream(RetryStreamConfig _owner, string _path, StreamAccess _access) { owner = _owner; path = _path; access = _access; str = CreateNetworkStream(); }
public override IBStream CreateStream(string path, StreamAccess access) { FileStream fs = new FileStream(LocalRoot + path, FileMode.OpenOrCreate, access == StreamAccess.Read ? FileAccess.Read : FileAccess.ReadWrite, access == StreamAccess.Read ? FileShare.ReadWrite : FileShare.Read, 1); return(new LocalStream(fs, password)); }
public static void Save(IValueSink sink, StreamAccess value) { sink.EnterSequence(); Value <int> .Save(sink, value.FileStartPosition); Value <byte[]> .Save(sink, value.FileData); sink.LeaveSequence(); }
public static void Save(IValueSink sink, StreamAccess value) { sink.EnterSequence(); Value <int> .Save(sink, value.FileStartPosition); Value <uint> .Save(sink, value.RequestedOctetCount); sink.LeaveSequence(); }
public CheckStreamAccessCompleted(Guid correlationId, string eventStreamId, long?transactionId, StreamAccessType accessType, StreamAccess accessResult) { CorrelationId = correlationId; EventStreamId = eventStreamId; TransactionId = transactionId; AccessType = accessType; AccessResult = accessResult; }
public CreateStreamResult CreateStream(string name, StreamAccess access, StreamShare share, int bufferSize) { var filePath = Path.Combine(SystemPath, name); var fs = OpenStream(filePath, FileMode.Create, access, share, bufferSize); var ret = new CreateStreamResult() { EntryBase = StorageProviderEntryFromPath(filePath), Stream = fs }; return(ret); }
public override IBStream CreateStream(string path, StreamAccess access) { //one remote connection each file; each remote connection has its own inner cache, //two connections for one file, some cache will not update automatically. RetryStream o; if (dict.TryGetValue(path, out o)) { return(o); } o = new RetryStream(this, BoxFileStreamConfig.RootPath + path, access); dict.Add(path, o); return(o); }
public override IBStream CreateStream(string path, StreamAccess access) { IRandomAccessStream s; if (!streams.TryGetValue(path, out s)) { var x = ApplicationData.Current.LocalFolder.CreateFileAsync(path, Windows.Storage.CreationCollisionOption.OpenIfExists).AsTask(); x.Wait(); var y = x.Result.OpenAsync(FileAccessMode.ReadWrite).AsTask(); y.Wait(); s = y.Result; streams.Add(path, s); } return(new LocalStream(s)); }
public Stream OpenStream(Uri uri, StreamMode mode, StreamAccess access, StreamShare share, int bufferSize) { var fmode = FileMode.Append; switch (mode) { case StreamMode.Append: fmode = FileMode.Append; break; case StreamMode.Open: fmode = FileMode.Open; break; case StreamMode.Truncate: fmode = FileMode.Truncate; break; } var filePath = PathFromUri(uri); return(OpenStream(filePath, fmode, access, share, bufferSize)); }
public Stream OpenStream(Uri uri, StreamMode mode, StreamAccess access, StreamShare share, int bufferSize) { if (uri is null) { throw new ArgumentNullException(nameof(uri)); } if (mode != StreamMode.Open) { throw new NotSupportedException($"ZipStorgeProvider does not support mode: {mode}"); } lock (_zipArchive) { var path = PathFromUri(uri); var stream = _zipArchive.GetEntry(path).Open(); return(stream); } }
public CreateStreamResult CreateStream(string name, StreamAccess access, StreamShare share, int bufferSize = 0) { var resolver = Context.ContentResolver; var androidUri = DocumentsContract.CreateDocument(resolver, AndroidUri, null, name); var fs = OpenStream(androidUri, StreamMode.Open, access, share, bufferSize); var ret = new CreateStreamResult() { Stream = fs, EntryBase = new StorageEntryBase { Name = name, LastWriteTime = DateTime.Now, Size = 0, IsStorage = false, Uri = AndroidUriToUri(androidUri) } }; return(ret); }
public Stream OpenStream(Uri uri, StreamMode mode, StreamAccess access, StreamShare share, int bufferSize = 0) { return(OpenStream(AndroidUriFromChildNetUri(uri), mode, access, share, bufferSize)); }
public static void Save(IValueSink sink, StreamAccess value) { sink.EnterSequence(); Value<int>.Save(sink, value.FileStartPosition); Value<uint>.Save(sink, value.RequestedOctetCount); sink.LeaveSequence(); }
public static void Save(IValueSink sink, StreamAccess value) { sink.EnterSequence(); Value<int>.Save(sink, value.FileStartPosition); Value<byte[]>.Save(sink, value.FileData); sink.LeaveSequence(); }
public CreateStreamResult CreateStream(string name, StreamAccess access, StreamShare share, int bufferSize) => throw new NotSupportedException();
private Stream OpenStream(Android.Net.Uri androidUri, StreamMode mode, StreamAccess access, StreamShare _, int bufferSize = 0) { if (access == StreamAccess.ReadWrite) { throw new ArgumentException("StreamMode.ReadWrite does not support!"); } var resolver = Context.ContentResolver; string streamMode = ""; if (bufferSize == 0) { bufferSize = 4096; } switch (mode) { case StreamMode.Append: if (access == StreamAccess.Read) { throw new ArgumentException("StreamMode.Append only support StreamAccess.write access."); } if (access == StreamAccess.Write) { streamMode = "wa"; } if (access == StreamAccess.ReadWrite) { throw new ArgumentException("StreamMode.Append only support StreamAccess.write access."); } break; case StreamMode.Open: if (access == StreamAccess.Read) { streamMode = "r"; } if (access == StreamAccess.Write) { streamMode = "rw"; //rw instead w; because w does not support seek } break; case StreamMode.Truncate: if (access == StreamAccess.Read) { throw new ArgumentException("StreamMode.Truncate does not support StreamAccess.read access."); } if (access == StreamAccess.ReadWrite) { throw new ArgumentException("StreamMode.Truncate does not support StreamAccess.readWrite access."); } if (access == StreamAccess.Write) { streamMode = "rwt"; } break; } var parcelFD = resolver.OpenFileDescriptor(androidUri, streamMode); var stream = new ChannelStream(parcelFD, streamMode); var ret = (Stream) new BufferedStream(stream, bufferSize); return(ret); }