Commit d532b3b6 authored by Andreas Jung's avatar Andreas Jung

- simplified implementation

- renamed handlers
- added zlog handler
parent eead7c05
...@@ -16,8 +16,9 @@ $Id: ZCatalog.py 25050 2004-05-27 15:06:40Z chrisw $ ...@@ -16,8 +16,9 @@ $Id: ZCatalog.py 25050 2004-05-27 15:06:40Z chrisw $
""" """
import time, sys import time, sys
from zLOG import LOG, INFO
class DefaultProgressHandler: class StdoutHandler:
""" A simple progress handler """ """ A simple progress handler """
def __init__(self, steps=100): def __init__(self, steps=100):
...@@ -42,25 +43,9 @@ class DefaultProgressHandler: ...@@ -42,25 +43,9 @@ class DefaultProgressHandler:
print >>self.fp, '%s: %s' % (self._ident, text) print >>self.fp, '%s: %s' % (self._ident, text)
class ProgressMixin: class ZLogHandler(StdoutHandler):
""" A simple machinery to provide progres informations for long running """ Use zLOG """
ZCatalog operations like reindexing.
"""
def pg_register(self, handler=None): def output(self, text):
self._v_pg_handler = handler LOG(self._ident, INFO, text)
def pg_init(self, ident, max):
handler = getattr(self, '_v_pg_handler', None)
if not handler: return
handler.init(ident, max)
def pg_finish(self):
handler = getattr(self, '_v_pg_handler', None)
if not handler: return
handler.finish()
def pg_report(self, current, *args, **kw):
handler = getattr(self, '_v_pg_handler', None)
if not handler: return
handler.report(current, *args, **kw)
...@@ -38,7 +38,6 @@ from Products.PluginIndexes.TextIndex import Splitter ...@@ -38,7 +38,6 @@ from Products.PluginIndexes.TextIndex import Splitter
import urllib, time, sys import urllib, time, sys
import string,logging import string,logging
from IZCatalog import IZCatalog from IZCatalog import IZCatalog
from ProgressHandler import ProgressMixin, DefaultProgressHandler
LOG = logging.getLogger('Zope.ZCatalog') LOG = logging.getLogger('Zope.ZCatalog')
...@@ -57,7 +56,7 @@ def manage_addZCatalog(self, id, title, ...@@ -57,7 +56,7 @@ def manage_addZCatalog(self, id, title,
return self.manage_main(self, REQUEST,update_menu=1) return self.manage_main(self, REQUEST,update_menu=1)
class ZCatalog(Folder, Persistent, Implicit, ProgressMixin): class ZCatalog(Folder, Persistent, Implicit):
"""ZCatalog object """ZCatalog object
A ZCatalog contains arbirary index like references to Zope A ZCatalog contains arbirary index like references to Zope
...@@ -461,7 +460,7 @@ class ZCatalog(Folder, Persistent, Implicit, ProgressMixin): ...@@ -461,7 +460,7 @@ class ZCatalog(Folder, Persistent, Implicit, ProgressMixin):
'/manage_catalogIndexes?manage_tabs_message=Index%20Cleared') '/manage_catalogIndexes?manage_tabs_message=Index%20Cleared')
def reindexIndex(self, name, REQUEST): def reindexIndex(self, name, REQUEST, pghandler=None):
if isinstance(name, str): if isinstance(name, str):
name = (name,) name = (name,)
...@@ -469,12 +468,13 @@ class ZCatalog(Folder, Persistent, Implicit, ProgressMixin): ...@@ -469,12 +468,13 @@ class ZCatalog(Folder, Persistent, Implicit, ProgressMixin):
num_paths = len(paths) # inefficient num_paths = len(paths) # inefficient
i = 0 i = 0
self.pg_register(DefaultProgressHandler(steps=10)) if pghandler:
self.pg_init('reindexing %s' % name, num_paths) pghandler.init('reindexing %s' % name, num_paths)
for p in paths: for p in paths:
i+=1 i+=1
self.pg_report(i) if pghandler: pghandler.report(i)
obj = self.resolve_path(p) obj = self.resolve_path(p)
if not obj: if not obj:
obj = self.resolve_url(p, REQUEST) obj = self.resolve_url(p, REQUEST)
...@@ -498,7 +498,8 @@ class ZCatalog(Folder, Persistent, Implicit, ProgressMixin): ...@@ -498,7 +498,8 @@ class ZCatalog(Folder, Persistent, Implicit, ProgressMixin):
DeprecationWarning) DeprecationWarning)
self.catalog_object(obj, p, idxs=name) self.catalog_object(obj, p, idxs=name)
self.pg_finish() if pghandler:
pghandler.finish()
def manage_reindexIndex(self, ids=None, REQUEST=None, RESPONSE=None, def manage_reindexIndex(self, ids=None, REQUEST=None, RESPONSE=None,
URL1=None): URL1=None):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment