Chromium Code Reviews| Index: common/py_trace_event/py_trace_event/trace_event_impl/meta_class.py |
| diff --git a/common/py_trace_event/py_trace_event/trace_event_impl/meta_class.py b/common/py_trace_event/py_trace_event/trace_event_impl/meta_class.py |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..4ede79bd338fac7ba31e45d0bbe3b14fba790b96 |
| --- /dev/null |
| +++ b/common/py_trace_event/py_trace_event/trace_event_impl/meta_class.py |
| @@ -0,0 +1,16 @@ |
| +# Copyright 2016 The Chromium Authors. All rights reserved. |
| +# Use of this source code is governed by a BSD-style license that can be |
| +# found in the LICENSE file. |
| + |
| +import types |
| + |
| +from py_trace_event.trace_event_impl import decorators |
| + |
| + |
| +class TracedMetaClass(type): |
| + def __new__(cls, name, bases, attrs): |
| + for attr_name, attr_value in attrs.iteritems(): |
| + if isinstance(attr_value, types.FunctionType): |
| + attrs[attr_name] = decorators.traced(attr_value) |
|
perezju
2016/09/07 09:06:51
is this tracing every single method? I think that,
petrcermak
2016/09/07 09:38:24
Unless this hinders performance or causes the resu
|
| + |
| + return super(TracedMetaClass, cls).__new__(cls, name, bases, attrs) |