trace: [tracetool] Minimize the amount of per-backend code

Backends now only contain the essential backend-specific code, and most of the work is moved to frontend code.

Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
Lluís Vilanova 2014-02-23 20:37:40 +01:00 committed by Stefan Hajnoczi
parent ef0bd3bba6
commit 1dad2ce973
19 changed files with 303 additions and 395 deletions

View file

@ -266,10 +266,7 @@ def generate(fevents, format, backend,
if not tracetool.backend.exists(backend):
raise TracetoolError("unknown backend: %s" % backend)
backend = backend.replace("-", "_")
if not tracetool.backend.compatible(backend, format):
raise TracetoolError("backend '%s' not compatible with format '%s'" %
(backend, format))
backend = tracetool.backend.Wrapper(backend, format)
import tracetool.backend.dtrace
tracetool.backend.dtrace.BINARY = binary
@ -277,16 +274,4 @@ def generate(fevents, format, backend,
events = _read_events(fevents)
if backend == "nop":
( e.properies.add("disable") for e in events )
tracetool.format.generate_begin(format, events)
tracetool.backend.generate("nop", format,
[ e
for e in events
if "disable" in e.properties ])
tracetool.backend.generate(backend, format,
[ e
for e in events
if "disable" not in e.properties ])
tracetool.format.generate_end(format, events)
tracetool.format.generate(events, format, backend)