示例#1
0
        /*
         * 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);
            }
        }
示例#2
0
        /*
         * 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;
            }
        }