/* * 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); }
/* * 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); } }
/* * 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); } }
/* * 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; } }
/* * 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; }
/* * 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; } }