Exemple #1
0
        private void FreeAllWaitersWithError(Exception e)
        {
            lock (_waitingRequests)
            {
                foreach (ResponseWaiter waiter in _waitingRequests)
                {
                    waiter.error = e;
                    waiter.waitEvent.Set();
                }

                _waitingRequests.Clear();
            }

            lock (_getResponseWaiters)
            {
                AssetServerError ase = new AssetServerError(e.Message, e);

                foreach (KeyValuePair <string, List <ResponseWaiter> > waiterPair in _getResponseWaiters)
                {
                    foreach (ResponseWaiter waiter in waiterPair.Value)
                    {
                        waiter.error = e;
                        waiter.waitEvent.Set();

                        if (waiter.callBack != null)
                        {
                            //also call async
                            waiter.callBack(null, ase);
                        }
                    }
                }

                _getResponseWaiters.Clear();
            }
        }
Exemple #2
0
        /// <summary>
        /// Checks the server response for errors and throws an exception if
        /// there is a problem
        /// </summary>
        /// <param name="serverResponseMsg">The response from the server</param>
        private void CheckThrowError(ResponseWaiter responseWaiter)
        {
            if (responseWaiter.error != null)
            {
                throw new AssetServerError(responseWaiter.error.Message, responseWaiter.error);
            }

            AssetServerError err = DetermineErrorFromStatus(responseWaiter.response);

            if (err != null)
            {
                throw err;
            }
        }
        private void FreeAllWaitersWithError(Exception e)
        {
            lock (_waitingRequests)
            {
                foreach (ResponseWaiter waiter in _waitingRequests)
                {
                    waiter.error = e;
                    waiter.waitEvent.Set();
                }

                _waitingRequests.Clear();
            }

            lock (_getResponseWaiters)
            {
                AssetServerError ase = new AssetServerError(e.Message, e);

                foreach (KeyValuePair<string, List<ResponseWaiter>> waiterPair in _getResponseWaiters)
                {
                    foreach (ResponseWaiter waiter in waiterPair.Value)
                    {
                        waiter.error = e;
                        waiter.waitEvent.Set();

                        if (waiter.callBack != null)
                        {
                            //also call async
                            waiter.callBack(null, ase);
                        }
                    }

                }

                _getResponseWaiters.Clear();
            }
        }