public OperaIndexableGenerator(OperaIndexer indexer, string cache_dir)
        {
            this.cache_dir = cache_dir;
            this.indexer   = indexer;
            if (history != null && history.GetLastRead() >= Directory.GetLastWriteTime(cache_dir))
            {
                history_enumerator = history.GetEnumerator();
                return;
            }
            try {
                history = new OperaHistory(Path.Combine(cache_dir, "dcache4.url"));

                history_enumerator = history.GetEnumerator();
            } catch (Exception e) {
                Logger.Log.Error(e, "Failed to list cache objects in {0}",
                                 Path.Combine(cache_dir, "dcache4.url"));
            }
        }