Skip to content
Snippets Groups Projects
Commit 0d84b677 authored by Dominic Kempf's avatar Dominic Kempf
Browse files

Add a first implementation of hooks

parent 62d84a2c
No related branches found
No related tags found
No related merge requests found
......@@ -31,6 +31,10 @@ from dune.perftool.generation.cpp import (base_class,
template_parameter,
)
from dune.perftool.generation.hooks import (register_hook,
run_hook,
)
from dune.perftool.generation.loopy import (barrier,
constantarg,
domain,
......
""" All the infrastructure code related to adding hooks to the code generation process """
_hooks = {}
def register_hook(hookname, func):
current = _hooks.setdefault(hookname, ())
current = list(current)
current.append(func)
_hooks[hookname] = tuple(current)
def run_hook(hookname, *args, **kwargs):
for hook in _hooks[hookname]:
hook(*args, **kwargs)
......@@ -28,6 +28,7 @@ from dune.perftool.generation import (backend,
post_include,
retrieve_cache_functions,
retrieve_cache_items,
run_hook,
template_parameter,
)
from dune.perftool.cgen.clazz import (AccessModifier,
......@@ -452,6 +453,8 @@ def visit_integral(integral):
visitor = get_visitor(measure, subdomain_id)
visitor.accumulate(integrand)
run_hook("after_visit", visitor)
def generate_kernel(integrals):
logger = logging.getLogger(__name__)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment