예제 #1
0
 /*
  * Handler Function which handles Change in Meta Data of the File
  */
 public bool handleFileMetaData(FileMetaDataSync request)
 {
     Logger.Debug("handleFileMetaData - Begin");
     TryReleaseLock(request.initiatedSystemId, request.transactionID);
     Logger.Debug("handleFileMetaData - End");
     return(true);
 }
예제 #2
0
        /*
         * Handler Function which Deletes a File and Marks it for Deletion if Required
         */
        public bool handleDeleteFile(FileMetaDataSync request)
        {
            try {
                Logger.Debug("handleDeleteFile - Begin");
                TryReleaseLock(request.initiatedSystemId, request.transactionID);

                if (!request.initiatedSystemId.Equals(IsisSystem.GetMyAddress()))
                {
                    bool delete = filesystem.deleteFileSynchronized(request.owner, request.filepath);

                    if (!delete)
                    {
                        Logger.Debug("The file : " + request.filepath + " was already marked for deletion, skipping");
                    }
                }
                Logger.Debug("handleDeleteFile - End");
                return(true);
            } catch (Exception e) {
                Logger.Debug("handleDeleteFile Encountered an Exception " + e.ToString());
                return(false);
            }
        }
예제 #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);
            }
        }
예제 #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;
            }
        }
예제 #5
0
 /*
  * Handler Function which handles Change in Meta Data of the File
 */
 public bool handleFileMetaData(FileMetaDataSync request)
 {
     Logger.Debug ("handleFileMetaData - Begin");
     TryReleaseLock(request.initiatedSystemId,request.transactionID);
     Logger.Debug ("handleFileMetaData - End");
     return true;
 }
예제 #6
0
        /*
         * Handler Function which Deletes a File and Marks it for Deletion if Required
        */
        public bool handleDeleteFile(FileMetaDataSync request)
        {
            try {
                Logger.Debug ("handleDeleteFile - Begin");
                TryReleaseLock (request.initiatedSystemId, request.transactionID);

                if (!request.initiatedSystemId.Equals (IsisSystem.GetMyAddress ())) {
                    bool delete = filesystem.deleteFileSynchronized (request.owner, request.filepath);

                    if (!delete) {
                        Logger.Debug ("The file : " + request.filepath + " was already marked for deletion, skipping");
                    }
                }
                Logger.Debug ("handleDeleteFile - End");
                return true;
            } catch (Exception e) {
                Logger.Debug("handleDeleteFile Encountered an Exception " + e.ToString());
                return false;
            }
        }