public static void delete_object(object threadContext) { Program.pending_requests_mutex.WaitOne(); Program.pending_requests++; Program.pending_requests_mutex.ReleaseMutex(); string text = (string)threadContext; HttpWebRequest httpWebRequest = WebRequest.Create(string.Concat(new string[] { Program.storage_url, "/", Program.container, "/", text })) as HttpWebRequest; httpWebRequest.Headers.Add("X-Storage-Token: " + Program.auth_key); httpWebRequest.Method = "DELETE"; Program.RequestState state = new Program.RequestState(httpWebRequest, text); Program.deleted_mutex.WaitOne(); Program.deleted++; Program.deleted_mutex.ReleaseMutex(); httpWebRequest.BeginGetResponse(new AsyncCallback(Program.delete_object_callback), state); }
public static void delete_object(object threadContext) { Program.pending_requests_mutex.WaitOne(); Program.pending_requests++; Program.pending_requests_mutex.ReleaseMutex(); string text = (string)threadContext; HttpWebRequest httpWebRequest = WebRequest.Create(string.Concat(new string[] { Program.storage_url, "/", Program.container, "/", text })) as HttpWebRequest; httpWebRequest.Headers.Add("X-Storage-Token: " + Program.auth_key); httpWebRequest.Method = "DELETE"; Program.RequestState state = new Program.RequestState(httpWebRequest, text); Program.deleted_mutex.WaitOne(); Program.deleted++; Program.deleted_mutex.ReleaseMutex(); httpWebRequest.BeginGetResponse(new AsyncCallback(Program.delete_object_callback), state); }
private static void delete_object_callback(IAsyncResult result) { Program.pending_requests_mutex.WaitOne(); Program.pending_requests--; Program.pending_requests_mutex.ReleaseMutex(); Program.RequestState requestState = (Program.RequestState)result.AsyncState; string text = (string)requestState.data; HttpWebResponse httpWebResponse = (HttpWebResponse)requestState.request.EndGetResponse(result); httpWebResponse.Close(); if (httpWebResponse.StatusCode != HttpStatusCode.OK && httpWebResponse.StatusCode != HttpStatusCode.NoContent) { if (httpWebResponse.StatusCode == HttpStatusCode.GatewayTimeout || httpWebResponse.StatusCode == HttpStatusCode.RequestTimeout) { Console.WriteLine("Timeout while deleting: " + text); Program.object_names.Enqueue(text); Program.deleted_mutex.WaitOne(); Program.deleted--; Program.deleted_mutex.ReleaseMutex(); } else { if (httpWebResponse.StatusCode == HttpStatusCode.BadRequest) { Console.WriteLine("400 error while deleting: " + text); } else { if (httpWebResponse.StatusCode == HttpStatusCode.Forbidden) { Console.WriteLine("401 error while deleting: " + text); Program.get_auth_key(); } else { if (httpWebResponse.StatusCode == HttpStatusCode.NotFound) { Console.WriteLine("404 error while deleting: " + text); } else { if (httpWebResponse.StatusCode == HttpStatusCode.InternalServerError) { Console.WriteLine("500 error while deleting: " + text); } else { Console.WriteLine("HTTP request error while deleting: " + text); Console.WriteLine(string.Concat(new object[] { "Error ", httpWebResponse.StatusCode, ": ", httpWebResponse.StatusDescription })); } } } } } } }