示例#1
0
        public OldFileSystem(OldOneDriveClient client, CryptoManager cryptoMgr)
        {
            this.Client = client;
            _cryptoMgr  = cryptoMgr;

            Console.WriteLine("initializing...");
            // update cache
            client.GetFiles(BASE_PATH);
            client.CreateDirectory(META_PATH);
            client.CreateDirectory(DATA_PATH);
            client.GetFiles(DATA_PATH);
            for (int i = 0; i < 256; ++i)
            {
                string path = DATA_PATH + "/" + i.ToString("x2");
                if (client.CreateDirectory(path))
                {
                    Console.WriteLine("  created data directory: {0}", path);
                }
            }

            var meta_entries = Client.GetFiles(META_PATH);

            using (var l = _lock.WriteLock()) {
                Console.WriteLine("  reading checkpoint...(not implemented)");
                Console.WriteLine("  reading log...(not implemented)");
                LogReplay(meta_entries);
            }
            Console.WriteLine("done");

            _logUploader = new Thread(LogUploadThread);
            _logUploader.Start();
        }
示例#2
0
 public FileWriter(string path, OldFileSystem fs, FileEntry entry)
 {
     _fs             = fs;
     _client         = fs.Client;
     _entry          = entry;
     _crypto         = fs._cryptoMgr;
     _path           = path;
     _creationTime   = DateTime.UtcNow;
     _maxSegmentSize = 1024 * 1024 * 64;
     _maxWrittenSize = _maxSegmentSize - _crypto.AuthenticatedEncryption.IVByteSize;
     InitSegment();
     _uploadThread = new Thread(UploadThread);
     _uploadThread.Start();
 }