/* * The Handler Function which handles the User Meta Data Change */ public bool handleUserMetaData(UserMetaDataSync request) { try { Logger.Debug("handleFileUserMetaData - Begin"); if (request.initiatedSystemId.Equals(IsisSystem.GetMyAddress())) { TryReleaseLock(request.initiatedSystemId, request.transactionID); Logger.Debug("handleFileUserMetaData - End"); return(true); } UserMetaData userdata = new UserMetaData(request.clientId, request.password, request.versionNumber, 0); try { filesystem.updateMetadataSynchronized(userdata); TryReleaseLock(request.initiatedSystemId, request.transactionID); Logger.Debug("handleFileUserMetaData - End"); } catch (UserNotLoadedInMemoryException e) { Logger.Debug("Exception: " + e.ToString()); filesystem.addUserSynchronized(request.clientId, request.password); TryReleaseLock(request.initiatedSystemId, request.transactionID); Logger.Debug("handleFileUserMetaData - End"); } return(true); } catch (Exception e) { Logger.Debug("handleUserMetaData Encountered an exception " + e.ToString()); return(false); } }
/* * This Function is called when a New User Is Added or the Meta Data of the User Needs to be Changed and Synched */ public bool sendsynchUserMetaData(UserMetaData data, OOBHandler handler, Group group, bool waitToFinish = true) { try { Logger.Debug("File Operations Synch - sendsynchUserMetaData >> BEGIN"); bool operationResult = false; if (waitToFinish) { string transactionId = FileServerComm.getInstance().transManager.generateTransactionId(data.clientId); Transaction trans = new Transaction(transactionId); if (true == FileServerComm.getInstance().transManager.insertTransaction(trans)) { UserMetaDataSync sync = new UserMetaDataSync(transactionId, IsisSystem.GetMyAddress(), data); group.OrderedSend(FileServerComm.UpdateUserMetaData, sync); Logger.Debug("File Operations Synch - Making a Ordered Send"); trans.waitTillSignalled(); FileServerComm.getInstance().transManager.removeAndGetTransaction(transactionId); operationResult = !trans.isTimedOut; } else { Logger.Debug("File Operations Synch - sendsynchUserMetaData >> Generation of Transaction ID Failed: " + transactionId); } } else { UserMetaDataSync sync = new UserMetaDataSync("", IsisSystem.GetMyAddress(), data); group.OrderedSend(FileServerComm.UpdateUserMetaData, sync); operationResult = true; } Logger.Debug("File Operations Synch - sendsynchUserMetaData >> END Operation Status " + operationResult); return(operationResult); } catch (Exception e) { Logger.Debug("File Operations Synch - sendsynchUserMetaData threw an Exception " + e.ToString()); return(false); } }
/* * This Function is called when a New User Is Added or the Meta Data of the User Needs to be Changed and Synched */ public bool sendsynchUserMetaData(UserMetaData data, OOBHandler handler, Group group, bool waitToFinish = true) { try { Logger.Debug ("File Operations Synch - sendsynchUserMetaData >> BEGIN"); bool operationResult = false; if (waitToFinish) { string transactionId = FileServerComm.getInstance ().transManager.generateTransactionId (data.clientId); Transaction trans = new Transaction (transactionId); if (true == FileServerComm.getInstance ().transManager.insertTransaction (trans)) { UserMetaDataSync sync = new UserMetaDataSync (transactionId, IsisSystem.GetMyAddress (), data); group.OrderedSend (FileServerComm.UpdateUserMetaData, sync); Logger.Debug ("File Operations Synch - Making a Ordered Send"); trans.waitTillSignalled (); FileServerComm.getInstance ().transManager.removeAndGetTransaction (transactionId); operationResult = !trans.isTimedOut; } else { Logger.Debug ("File Operations Synch - sendsynchUserMetaData >> Generation of Transaction ID Failed: " + transactionId); } } else { UserMetaDataSync sync = new UserMetaDataSync ("", IsisSystem.GetMyAddress (), data); group.OrderedSend (FileServerComm.UpdateUserMetaData, sync); operationResult = true; } Logger.Debug ("File Operations Synch - sendsynchUserMetaData >> END Operation Status " + operationResult); return operationResult; } catch (Exception e) { Logger.Debug("File Operations Synch - sendsynchUserMetaData threw an Exception " + e.ToString()); return false; } }
/* * The Handler Function which handles the User Meta Data Change */ public bool handleUserMetaData(UserMetaDataSync request) { try { Logger.Debug ("handleFileUserMetaData - Begin"); if (request.initiatedSystemId.Equals (IsisSystem.GetMyAddress ())) { TryReleaseLock (request.initiatedSystemId, request.transactionID); Logger.Debug ("handleFileUserMetaData - End"); return true; } UserMetaData userdata = new UserMetaData (request.clientId, request.password, request.versionNumber, 0); try { filesystem.updateMetadataSynchronized (userdata); TryReleaseLock (request.initiatedSystemId, request.transactionID); Logger.Debug ("handleFileUserMetaData - End"); } catch (UserNotLoadedInMemoryException e) { Logger.Debug ("Exception: " + e.ToString ()); filesystem.addUserSynchronized (request.clientId, request.password); TryReleaseLock (request.initiatedSystemId, request.transactionID); Logger.Debug ("handleFileUserMetaData - End"); } return true; } catch (Exception e) { Logger.Debug("handleUserMetaData Encountered an exception " + e.ToString()); return false; } }