Example #1
0
        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);
        }
Example #4
0
        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();
            }
        }