Example #1
0
        private UserFileSystem RestoreUserFileSystem(string userdir)
        {
            logger.Debug("Restoring user file system for user dir path :" + userdir);
            UserFileSystem userfilesystem       = new UserFileSystem();
            string         user                 = new DirectoryInfo(userdir).Name;
            string         usermetadatafilepath = userdir + Path.DirectorySeparatorChar + metadatafilename;
            List <String>  metadatafilecontent  = FileUtils.ReadLinesFromFile(usermetadatafilepath);

            if (metadatafilecontent.Count < 3)
            {
                throw new DiskuserMetaDataCorrupt("Disk meta data corrupt for user: " + user);
            }

            UserMetaData metadataobj = new UserMetaData(metadatafilecontent[0].Trim(),
                                                        metadatafilecontent[1].Trim(), int.Parse(metadatafilecontent[2].Trim()));

            userfilesystem.metadata = metadataobj;

            metadatafilecontent.RemoveRange(0, 3);              //remove the meta data rows and we are left with file names
            foreach (string filepath in metadatafilecontent)
            {
                UserFile file = RestoreUserFile(userdir, filepath.Trim());
                userfilesystem.filemap.Add(filepath.Trim(), file);
            }
            return(userfilesystem);
        }
Example #2
0
 public UserFileSystem(UserMetaData metadata)
 {
     this.filemap     = new Dictionary <string, UserFile> ();
     this.sharedFiles = new List <SharedFile> ();
     this.privateLock = new object();
     this.metadata    = metadata;
 }
 public UserFileSystem(UserMetaData metadata)
 {
     this.filemap = new Dictionary<string, UserFile> ();
     this.sharedFiles = new List<SharedFile> ();
     this.privateLock = new object ();
     this.metadata = metadata;
 }
Example #4
0
 public void SetMetadataSynchronized(UserMetaData metadata)
 {
     lock (this.privateLock) {
         this.metadata = metadata;
     }
 }
 public void SetMetadataSychronized(UserMetaData metadata)
 {
     lock (this.privateLock) {
         this.metadata = metadata;
     }
 }