Esempio n. 1
0
        internal void processBackgroundOperation <DATA_TYPE>(OperationAndData <DATA_TYPE> operationAndData,
                                                             ICuratorEvent @event)
        {
            bool isInitialExecution = (@event == null);

            if (isInitialExecution)
            {
                performBackgroundOperation(operationAndData);
                return;
            }

            bool doQueueOperation = false;

            do
            {
                if (RetryLoop.shouldRetry(@event.getResultCode()))
                {
                    doQueueOperation = checkBackgroundRetry(operationAndData, @event);
                    break;
                }

                if (operationAndData.getCallback() != null)
                {
                    sendToBackgroundCallback(operationAndData, @event);
                    break;
                }

                processEvent(@event);
            }while (false);

            if (doQueueOperation)
            {
                queueOperation(operationAndData);
            }
        }
Esempio n. 2
0
 public void processResult(CuratorFramework client, ICuratorEvent @event)
 {
     _service.execute(RunnableUtils.FromFunc(() =>
     {
         try
         {
             _callback.processResult(_client, @event);
         }
         catch (Exception e)
         {
             ThreadUtils.checkInterrupted(e);
             var keeperException = e as KeeperException;
             if (keeperException != null)
             {
                 _client.validateConnection(_client.codeToState(keeperException));
             }
             _client.logError("Background operation result handling threw exception", e);
         }
     }));
 }
Esempio n. 3
0
 internal void processBackgroundOperation <DATA_TYPE>(OperationAndData <DATA_TYPE> operationAndData, ICuratorEvent @event)
 {
     client.processBackgroundOperation(operationAndData, @event);
 }
Esempio n. 4
0
 public void processResult(CuratorFramework client, ICuratorEvent @event)
 {
     _service.execute(RunnableUtils.FromFunc(() =>
     {
         try
         {
             _callback.processResult(_client, @event);
         }
         catch ( Exception e )
         {
             ThreadUtils.checkInterrupted(e);
             var keeperException = e as KeeperException;
             if ( keeperException != null )
             {
                 _client.validateConnection(_client.codeToState(keeperException));
             }
             _client.logError("Background operation result handling threw exception", e);
         }
     }));
 }