Exemplo n.º 1
0
 public FileMetaData cloneMetaDataObject()
 {
     FileMetaData retObj = new FileMetaData (this.filepath, this.owner);
     retObj.filesize = this.filesize;
     retObj.sharedwithclients = new List<string> (this.sharedwithclients);
     retObj.versionNumber = this.versionNumber;
     retObj.markedForDeletion = this.markedForDeletion;
     return retObj;
 }
Exemplo n.º 2
0
        public FileMetaDataSync(string transactionId, Address localAddress, FileMetaData filemetadata)
        {
            this.filepath = filemetadata.filepath;
            this.owner = filemetadata.owner;
            this.filesize = filemetadata.filesize;
            this.transactionID = transactionId;
            this.initiatedSystemId = localAddress;
            this.versionNumber = filemetadata.versionNumber;

            if (null != filemetadata) {
                int index = 0;
                foreach(string client in filemetadata.sharedwithclients) {
                    if(index != filemetadata.sharedwithclients.Count - 1)
                        longSharedWithClients += client + ",";
                    else
                        longSharedWithClients += client;
                }
            }
        }
Exemplo n.º 3
0
        /*
         * This Function is to be called when the File is Deleted from the Users List
         */
        public bool sendsynchdeleteFile(FileMetaData filemetadata, OOBHandler handler, Group group, bool waitToFinish = true)
        {
            try {
                Logger.Debug("File Operations Synch - sendsynchdeleteFile >> BEGIN");
                bool operationResult = false;

                if (waitToFinish)
                {
                    string      transactionId = FileServerComm.getInstance().transManager.generateTransactionId(filemetadata.filepath);
                    Transaction trans         = new Transaction(transactionId);
                    if (true == FileServerComm.getInstance().transManager.insertTransaction(trans))
                    {
                        FileMetaDataSync sync = new FileMetaDataSync(transactionId, IsisSystem.GetMyAddress(), filemetadata);
                        group.OrderedSend(FileServerComm.DeleteFile, sync);
                        trans.waitTillSignalled();
                        FileServerComm.getInstance().transManager.removeAndGetTransaction(transactionId);
                        operationResult = !trans.isTimedOut;
                    }
                    else
                    {
                        Logger.Debug("File Operations Synch - sendsynchdeleteFile >> Generation of Transaction ID Failed: " + transactionId);
                    }
                }
                else
                {
                    FileMetaDataSync sync = new FileMetaDataSync("", IsisSystem.GetMyAddress(), filemetadata);
                    group.OrderedSend(FileServerComm.DeleteFile, sync);
                    operationResult = true;
                }


                Logger.Debug("File Operations Synch - sendsynchdeleteFileFromMemory >> END Operation Status " + operationResult);
                return(operationResult);
            } catch (Exception e) {
                Logger.Debug("File Operations Synch - sendsynchdeleteFile encountered a Excetpion: " + e.ToString());
                return(false);
            }
        }
Exemplo n.º 4
0
        /*
         * This Function Will be Called when the User Meta Data is Changed
         * Typical Call is when a File is Shared or Unshared, the Meta Data Changes and we store this information
         * and Synch it across all the File Server Nodes
        */
        public bool sendsynchFileMetaData(FileMetaData filemetadata, OOBHandler handler, Group group, bool waitToFinish = true)
        {
            try {
                Logger.Debug ("File Operations Synch - sendsynchFileMetaData >> BEGIN");
                bool operationResult = false;

                if (waitToFinish) {
                    string transactionId = FileServerComm.getInstance ().transManager.generateTransactionId (filemetadata.filepath);
                    Transaction trans = new Transaction (transactionId);
                    if (true == FileServerComm.getInstance ().transManager.insertTransaction (trans)) {
                        FileMetaDataSync sync = new FileMetaDataSync (transactionId, IsisSystem.GetMyAddress (), filemetadata);
                        group.OrderedSend (FileServerComm.UpdateFileMetaData, sync);
                        trans.waitTillSignalled ();
                        FileServerComm.getInstance ().transManager.removeAndGetTransaction (transactionId);
                        operationResult = !trans.isTimedOut;
                    } else {
                        Logger.Debug ("File Operations Synch - sendsynchUserMetaData >> Generation of Transaction ID Failed: " + transactionId);
                    }
                } else {
                    FileMetaDataSync sync = new FileMetaDataSync ("", IsisSystem.GetMyAddress (), filemetadata);
                    group.OrderedSend (FileServerComm.UpdateUserMetaData, sync);
                    operationResult = true;
                }

                Logger.Debug ("File Operations Synch - sendsynchFileMetaData >> END Operation Status " + operationResult);
                return operationResult;
            } catch (Exception e) {
                Logger.Debug ("File Operations Synch - sendsynchFileMetaData encountered Exception " + e.ToString());
                return false;
            }
        }
Exemplo n.º 5
0
 public UserFile(string filepath, string owner)
 {
     this.filemetadata = new FileMetaData(filepath, owner);
     this.filecontent  = new byte[0];
 }