public IndexedFS(Filesystem msys) { _msys = msys; if (!msys.EnumFiles().GetEnumerator().MoveNext()) { //Create index msys.AllocSpace(0,512); Stream mstream = new ObservableStream(0, msys); BinaryWriter mwriter = new BinaryWriter(mstream); mwriter.Write(filemappings.Count); cval++; } ObservableStream fstr = new ObservableStream(0, msys); BinaryReader mreader = new BinaryReader(fstr); int count = mreader.ReadInt32(); for (int i = 0; i < count; i++) { if (mreader.ReadBoolean()) { filemappings.Add(mreader.ReadString(), mreader.ReadInt64()); } else { dirmappings.Add(mreader.ReadString(), mreader.ReadInt64()); } cval++; } }
public ConsoleTextBox() { InitializeComponent(); m_CurrUserCmd = string.Empty; m_Cmds = new Stack <string>(); m_InputStream = new InputStream(); m_OutputStream = new ObservableStream(); m_OutputStream.OnDataWritten += OnStreamWrite; }
private T PushStream <T>(T stream) where T : Stream { this.DisposeObservableStreamSubscription(); var observableStream = new ObservableStream(stream); this.observableStreamSubscription = observableStream.Subscribe(new ConsoleStreamObserver(Encoding.Utf8NoBom, ConsoleColor.Cyan, ConsoleColor.Yellow)); this.streams.Push(observableStream); return(stream); }
public void Commit() { lock (dirmappings) { lock (filemappings) { lock (_msys) { Stream bstr = new ObservableStream(0, _msys); BinaryWriter mwriter = new BinaryWriter(bstr); mwriter.Write(filemappings.Count+dirmappings.Count); foreach (KeyValuePair<string, long> et in filemappings) { mwriter.Write(true); mwriter.Write(et.Key); mwriter.Write(et.Value); } foreach (KeyValuePair<string, long> et in dirmappings) { mwriter.Write(false); mwriter.Write(et.Key); mwriter.Write(et.Value); } _msys.Commit(); bstr.Close(); } } } if(parent !=null) { parent.Commit(); } }