From 7b9fff388d8c662fdfc8afc88a05aebd518496b4 Mon Sep 17 00:00:00 2001
From: Brian Warner <warner@allmydata.com>
Date: Wed, 16 Jul 2008 16:31:47 -0700
Subject: [PATCH] immutable download: remove dead LiteralDownloader, now that
 we use filenodes for download

---
 src/allmydata/immutable/download.py | 44 ++++++-----------------------
 1 file changed, 9 insertions(+), 35 deletions(-)

diff --git a/src/allmydata/immutable/download.py b/src/allmydata/immutable/download.py
index 983575ed..975a7169 100644
--- a/src/allmydata/immutable/download.py
+++ b/src/allmydata/immutable/download.py
@@ -955,29 +955,6 @@ class FileDownloader:
         return self._status
 
 
-class LiteralDownloader:
-    def __init__(self, client, u, downloadable):
-        self._uri = IFileURI(u)
-        assert isinstance(self._uri, uri.LiteralFileURI)
-        self._downloadable = downloadable
-        self._status = s = DownloadStatus()
-        s.set_storage_index(None)
-        s.set_helper(False)
-        s.set_status("Done")
-        s.set_active(False)
-        s.set_progress(1.0)
-
-    def start(self):
-        data = self._uri.data
-        self._status.set_size(len(data))
-        self._downloadable.open(len(data))
-        self._downloadable.write(data)
-        self._downloadable.close()
-        return defer.maybeDeferred(self._downloadable.finish)
-
-    def get_download_status(self):
-        return self._status
-
 class FileName:
     implements(IDownloadTarget)
     def __init__(self, filename):
@@ -1044,6 +1021,8 @@ class FileHandle:
 class Downloader(service.MultiService):
     """I am a service that allows file downloading.
     """
+    # TODO: in fact, this service only downloads immutable files (URI:CHK:).
+    # It is scheduled to go away, to be replaced by filenode.download()
     implements(IDownloader)
     name = "downloader"
     MAX_DOWNLOAD_STATUSES = 10
@@ -1063,18 +1042,13 @@ class Downloader(service.MultiService):
         assert t.write
         assert t.close
 
-
-        if isinstance(u, uri.LiteralFileURI):
-            dl = LiteralDownloader(self.parent, u, t)
-        elif isinstance(u, uri.CHKFileURI):
-            if self.stats_provider:
-                # these counters are meant for network traffic, and don't
-                # include LIT files
-                self.stats_provider.count('downloader.files_downloaded', 1)
-                self.stats_provider.count('downloader.bytes_downloaded', u.get_size())
-            dl = FileDownloader(self.parent, u, t)
-        else:
-            raise RuntimeError("I don't know how to download a %s" % u)
+        assert isinstance(u, uri.CHKFileURI)
+        if self.stats_provider:
+            # these counters are meant for network traffic, and don't
+            # include LIT files
+            self.stats_provider.count('downloader.files_downloaded', 1)
+            self.stats_provider.count('downloader.bytes_downloaded', u.get_size())
+        dl = FileDownloader(self.parent, u, t)
         self._add_download(dl)
         d = dl.start()
         return d
-- 
2.45.2