Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(278)

Unified Diff: third_party/sqlite/sqlite-src-3100200/tool/GetFile.cs

Issue 2846743003: [sql] Remove SQLite 3.10.2 reference directory. (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/sqlite/sqlite-src-3100200/tool/GetFile.cs
diff --git a/third_party/sqlite/sqlite-src-3100200/tool/GetFile.cs b/third_party/sqlite/sqlite-src-3100200/tool/GetFile.cs
deleted file mode 100644
index 2a62deb552d827bd04420504d1711af4c50ab2ff..0000000000000000000000000000000000000000
--- a/third_party/sqlite/sqlite-src-3100200/tool/GetFile.cs
+++ /dev/null
@@ -1,450 +0,0 @@
-/*
-** 2015 October 7
-**
-** The author disclaims copyright to this source code. In place of
-** a legal notice, here is a blessing:
-**
-** May you do good and not evil.
-** May you find forgiveness for yourself and forgive others.
-** May you share freely, never taking more than you give.
-**
-*************************************************************************
-** This file contains C# code to download a single file based on a URI.
-*/
-
-using System;
-using System.ComponentModel;
-using System.Diagnostics;
-using System.IO;
-using System.Net;
-using System.Reflection;
-using System.Runtime.InteropServices;
-using System.Threading;
-
-///////////////////////////////////////////////////////////////////////////////
-
-#region Assembly Metadata
-[assembly: AssemblyTitle("GetFile Tool")]
-[assembly: AssemblyDescription("Download a single file based on a URI.")]
-[assembly: AssemblyCompany("SQLite Development Team")]
-[assembly: AssemblyProduct("SQLite")]
-[assembly: AssemblyCopyright("Public Domain")]
-[assembly: ComVisible(false)]
-[assembly: Guid("5c4b3728-1693-4a33-a218-8e6973ca15a6")]
-[assembly: AssemblyVersion("1.0.*")]
-
-#if DEBUG
-[assembly: AssemblyConfiguration("Debug")]
-#else
-[assembly: AssemblyConfiguration("Release")]
-#endif
-#endregion
-
-///////////////////////////////////////////////////////////////////////////////
-
-namespace GetFile
-{
- /// <summary>
- /// This enumeration is used to represent all the possible exit codes from
- /// this tool.
- /// </summary>
- internal enum ExitCode
- {
- /// <summary>
- /// The file download was a success.
- /// </summary>
- Success = 0,
-
- /// <summary>
- /// The command line arguments are missing (i.e. null). Generally,
- /// this should not happen.
- /// </summary>
- MissingArgs = 1,
-
- /// <summary>
- /// The wrong number of command line arguments was supplied.
- /// </summary>
- WrongNumArgs = 2,
-
- /// <summary>
- /// The URI specified on the command line could not be parsed as a
- /// supported absolute URI.
- /// </summary>
- BadUri = 3,
-
- /// <summary>
- /// The file name portion of the URI specified on the command line
- /// could not be extracted from it.
- /// </summary>
- BadFileName = 4,
-
- /// <summary>
- /// The temporary directory is either invalid (i.e. null) or does not
- /// represent an available directory.
- /// </summary>
- BadTempPath = 5,
-
- /// <summary>
- /// An exception was caught in <see cref="Main" />. Generally, this
- /// should not happen.
- /// </summary>
- Exception = 6,
-
- /// <summary>
- /// The file download was canceled. This tool does not make use of
- /// the <see cref="WebClient.CancelAsync" /> method; therefore, this
- /// should not happen.
- /// </summary>
- DownloadCanceled = 7,
-
- /// <summary>
- /// The file download encountered an error. Further information about
- /// this error should be displayed on the console.
- /// </summary>
- DownloadError = 8
- }
-
- ///////////////////////////////////////////////////////////////////////////
-
- internal static class Program
- {
- #region Private Data
- /// <summary>
- /// This is used to synchronize multithreaded access to the
- /// <see cref="previousPercent" /> and <see cref="exitCode"/>
- /// fields.
- /// </summary>
- private static readonly object syncRoot = new object();
-
- ///////////////////////////////////////////////////////////////////////
-
- /// <summary>
- /// This event will be signed when the file download has completed,
- /// even if the file download itself was canceled or unsuccessful.
- /// </summary>
- private static EventWaitHandle doneEvent;
-
- ///////////////////////////////////////////////////////////////////////
-
- /// <summary>
- /// The previous file download completion percentage seen by the
- /// <see cref="DownloadProgressChanged" /> event handler. This value
- /// is never decreased, nor is it ever reset to zero.
- /// </summary>
- private static int previousPercent = 0;
-
- ///////////////////////////////////////////////////////////////////////
-
- /// <summary>
- /// This will be the exit code returned by this tool after the file
- /// download completes, successfully or otherwise. This value is only
- /// changed by the <see cref="DownloadFileCompleted" /> event handler.
- /// </summary>
- private static ExitCode exitCode = ExitCode.Success;
- #endregion
-
- ///////////////////////////////////////////////////////////////////////
-
- #region Private Support Methods
- /// <summary>
- /// This method displays an error message to the console and/or
- /// displays the command line usage information for this tool.
- /// </summary>
- /// <param name="message">
- /// The error message to display, if any.
- /// </param>
- /// <param name="usage">
- /// Non-zero to display the command line usage information.
- /// </param>
- private static void Error(
- string message,
- bool usage
- )
- {
- if (message != null)
- Console.WriteLine(message);
-
- string fileName = Path.GetFileName(
- Process.GetCurrentProcess().MainModule.FileName);
-
- Console.WriteLine(String.Format("usage: {0} <uri>", fileName));
- }
-
- ///////////////////////////////////////////////////////////////////////
-
- /// <summary>
- /// This method attempts to determine the file name portion of the
- /// specified URI.
- /// </summary>
- /// <param name="uri">
- /// The URI to process.
- /// </param>
- /// <returns>
- /// The file name portion of the specified URI -OR- null if it cannot
- /// be determined.
- /// </returns>
- private static string GetFileName(
- Uri uri
- )
- {
- if (uri == null)
- return null;
-
- string pathAndQuery = uri.PathAndQuery;
-
- if (String.IsNullOrEmpty(pathAndQuery))
- return null;
-
- int index = pathAndQuery.LastIndexOf('/');
-
- if ((index < 0) || (index == pathAndQuery.Length))
- return null;
-
- return pathAndQuery.Substring(index + 1);
- }
- #endregion
-
- ///////////////////////////////////////////////////////////////////////
-
- #region Private Event Handlers
- /// <summary>
- /// This method is an event handler that is called when the file
- /// download completion percentage changes. It will display progress
- /// on the console. Special care is taken to make sure that progress
- /// events are not displayed out-of-order, even if duplicate and/or
- /// out-of-order events are received.
- /// </summary>
- /// <param name="sender">
- /// The source of the event.
- /// </param>
- /// <param name="e">
- /// Information for the event being processed.
- /// </param>
- private static void DownloadProgressChanged(
- object sender,
- DownloadProgressChangedEventArgs e
- )
- {
- if (e != null)
- {
- int percent = e.ProgressPercentage;
-
- lock (syncRoot)
- {
- if (percent > previousPercent)
- {
- Console.Write('.');
-
- if ((percent % 10) == 0)
- Console.Write(" {0}% ", percent);
-
- previousPercent = percent;
- }
- }
- }
- }
-
- ///////////////////////////////////////////////////////////////////////
-
- /// <summary>
- /// This method is an event handler that is called when the file
- /// download has completed, successfully or otherwise. It will
- /// display the overall result of the file download on the console,
- /// including any <see cref="Exception" /> information, if applicable.
- /// The <see cref="exitCode" /> field is changed by this method to
- /// indicate the overall result of the file download and the event
- /// within the <see cref="doneEvent" /> field will be signaled.
- /// </summary>
- /// <param name="sender">
- /// The source of the event.
- /// </param>
- /// <param name="e">
- /// Information for the event being processed.
- /// </param>
- private static void DownloadFileCompleted(
- object sender,
- AsyncCompletedEventArgs e
- )
- {
- if (e != null)
- {
- lock (syncRoot)
- {
- if (previousPercent < 100)
- Console.Write(' ');
- }
-
- if (e.Cancelled)
- {
- Console.WriteLine("Canceled");
-
- lock (syncRoot)
- {
- exitCode = ExitCode.DownloadCanceled;
- }
- }
- else
- {
- Exception error = e.Error;
-
- if (error != null)
- {
- Console.WriteLine("Error: {0}", error);
-
- lock (syncRoot)
- {
- exitCode = ExitCode.DownloadError;
- }
- }
- else
- {
- Console.WriteLine("Done");
- }
- }
- }
-
- if (doneEvent != null)
- doneEvent.Set();
- }
- #endregion
-
- ///////////////////////////////////////////////////////////////////////
-
- #region Program Entry Point
- /// <summary>
- /// This is the entry-point for this tool. It handles processing the
- /// command line arguments, setting up the web client, downloading the
- /// file, and saving it to the file system.
- /// </summary>
- /// <param name="args">
- /// The command line arguments.
- /// </param>
- /// <returns>
- /// Zero upon success; non-zero on failure. This will be one of the
- /// values from the <see cref="ExitCode" /> enumeration.
- /// </returns>
- private static int Main(
- string[] args
- )
- {
- //
- // NOTE: Sanity check the command line arguments.
- //
- if (args == null)
- {
- Error(null, true);
- return (int)ExitCode.MissingArgs;
- }
-
- if (args.Length != 1)
- {
- Error(null, true);
- return (int)ExitCode.WrongNumArgs;
- }
-
- //
- // NOTE: Attempt to convert the first (and only) command line
- // argument to an absolute URI.
- //
- Uri uri;
-
- if (!Uri.TryCreate(args[0], UriKind.Absolute, out uri))
- {
- Error("Could not create absolute URI from argument.", false);
- return (int)ExitCode.BadUri;
- }
-
- //
- // NOTE: Attempt to extract the file name portion of the URI we
- // just created.
- //
- string fileName = GetFileName(uri);
-
- if (fileName == null)
- {
- Error("Could not extract the file name from the URI.", false);
- return (int)ExitCode.BadFileName;
- }
-
- //
- // NOTE: Grab the temporary path setup for this process. If it is
- // unavailable, we will not continue.
- //
- string directory = Path.GetTempPath();
-
- if (String.IsNullOrEmpty(directory) ||
- !Directory.Exists(directory))
- {
- Error("Temporary directory is invalid or unavailable.", false);
- return (int)ExitCode.BadTempPath;
- }
-
- try
- {
- using (WebClient webClient = new WebClient())
- {
- //
- // NOTE: Create the event used to signal completion of the
- // file download.
- //
- doneEvent = new ManualResetEvent(false);
-
- //
- // NOTE: Hookup the event handlers we care about on the web
- // client. These are necessary because the file is
- // downloaded asynchronously.
- //
- webClient.DownloadProgressChanged +=
- new DownloadProgressChangedEventHandler(
- DownloadProgressChanged);
-
- webClient.DownloadFileCompleted +=
- new AsyncCompletedEventHandler(
- DownloadFileCompleted);
-
- //
- // NOTE: Build the fully qualified path and file name,
- // within the temporary directory, where the file to
- // be downloaded will be saved.
- //
- fileName = Path.Combine(directory, fileName);
-
- //
- // NOTE: If the file name already exists (in the temporary)
- // directory, delete it.
- //
- // TODO: Perhaps an error should be raised here instead?
- //
- if (File.Exists(fileName))
- File.Delete(fileName);
-
- //
- // NOTE: After kicking off the asynchronous file download
- // process, wait [forever] until the "done" event is
- // signaled.
- //
- Console.WriteLine(
- "Downloading \"{0}\" to \"{1}\"...", uri, fileName);
-
- webClient.DownloadFileAsync(uri, fileName);
- doneEvent.WaitOne();
- }
-
- lock (syncRoot)
- {
- return (int)exitCode;
- }
- }
- catch (Exception e)
- {
- //
- // NOTE: An exception was caught. Report it via the console
- // and return failure.
- //
- Error(e.ToString(), false);
- return (int)ExitCode.Exception;
- }
- }
- #endregion
- }
-}
« no previous file with comments | « third_party/sqlite/sqlite-src-3100200/test/zerodamage.test ('k') | third_party/sqlite/sqlite-src-3100200/tool/GetTclKit.bat » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698