prefetch to cache
[nikiroo-utils.git] / src / be / nikiroo / fanfix / reader / ui / GuiReader.java
index 1d782129276aaa0744ab414b40b0b09ebd9662de..0205e11489ba783b85102781c93d7932207489eb 100644 (file)
@@ -234,16 +234,7 @@ class GuiReader extends BasicReader {
        @Override
        public void search(SupportType searchOn, String keywords, int page,
                        int item, boolean sync) {
-               final GuiReaderSearchFrame search = new GuiReaderSearchFrame(
-                               GuiReader.this);
-               while (!search.isEnabled()) {
-                       try {
-                               Thread.sleep(10);
-                       } catch (InterruptedException e) {
-                               Instance.getTraceHandler().error(e);
-                       }
-               }
-
+               GuiReaderSearchFrame search = new GuiReaderSearchFrame(this);
                search.search(searchOn, keywords, page, item);
                if (sync) {
                        sync(search);
@@ -256,15 +247,7 @@ class GuiReader extends BasicReader {
        public void searchTag(final SupportType searchOn, final int page,
                        final int item, final boolean sync, final Integer... tags) {
 
-               final GuiReaderSearchFrame search = new GuiReaderSearchFrame(
-                               GuiReader.this);
-               while (!search.isEnabled()) {
-                       try {
-                               Thread.sleep(10);
-                       } catch (InterruptedException e) {
-                               Instance.getTraceHandler().error(e);
-                       }
-               }
+               final GuiReaderSearchFrame search = new GuiReaderSearchFrame(this);
 
                final BasicSearchable searchable = BasicSearchable
                                .getSearchable(searchOn);
@@ -334,8 +317,6 @@ class GuiReader extends BasicReader {
        /**
         * "Open" the given {@link Story}. It usually involves starting an external
         * program adapted to the given file type.
-        * <p>
-        * Asynchronous method.
         * 
         * @param luid
         *            the luid of the {@link Story} to open
@@ -379,6 +360,24 @@ class GuiReader extends BasicReader {
                }
        }
 
+
+       /**
+        * "Prefetch" the given {@link Story}.
+        * <p>
+        * Synchronous method.
+        * 
+        * @param luid
+        *            the luid of the {@link Story} to prefetch
+        * @param pg
+        *            the optional progress (we may need to prepare the
+        *            {@link Story} for reading
+        * 
+        * @throws IOException
+        *             in case of I/O errors
+        */
+       void prefetch(String luid, Progress pg) throws IOException {
+               cacheLib.getFile(luid, pg);
+       }
        /**
         * Change the source of the given {@link Story} (the source is the main
         * information used to group the stories together).