diff options
author | Alex Ray <aray@google.com> | 2013-04-29 12:24:49 -0700 |
---|---|---|
committer | Alex Ray <aray@google.com> | 2013-04-29 14:16:57 -0700 |
commit | c16e56dd43643d9013a72ddc42ab08e72f485382 (patch) | |
tree | 977c9bff87b8c8623a227b2cfe2dd415f05190da /modules/camera/ScopedTrace.h | |
parent | 005c9da54402e28eab5b8d52b729268a94ef4d61 (diff) | |
download | hardware_libhardware-c16e56dd43643d9013a72ddc42ab08e72f485382.zip hardware_libhardware-c16e56dd43643d9013a72ddc42ab08e72f485382.tar.gz hardware_libhardware-c16e56dd43643d9013a72ddc42ab08e72f485382.tar.bz2 |
modules: camera: Add scoped trace helper
This c++ helper class is normally provided by frameworks/native's
libutils, but cannot be used from the context of a hardware module. For
now just add the required functionality locally in the hardware module.
Change-Id: I5b399cbeb1c017a95baf19456dbf20569e677fbe
Diffstat (limited to 'modules/camera/ScopedTrace.h')
-rw-r--r-- | modules/camera/ScopedTrace.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/modules/camera/ScopedTrace.h b/modules/camera/ScopedTrace.h new file mode 100644 index 0000000..ed00570 --- /dev/null +++ b/modules/camera/ScopedTrace.h @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef CAMERA_SCOPED_TRACE_H +#define CAMERA_SCOPED_TRACE_H + +#include <stdint.h> +#include <cutils/trace.h> + +// See <cutils/trace.h> for more tracing macros. + +// CAMTRACE_NAME traces the beginning and end of the current scope. To trace +// the correct start and end times this macro should be declared first in the +// scope body. +#define CAMTRACE_NAME(name) ScopedTrace ___tracer(ATRACE_TAG, name) +// CAMTRACE_CALL is an ATRACE_NAME that uses the current function name. +#define CAMTRACE_CALL() CAMTRACE_NAME(__FUNCTION__) + +namespace default_camera_hal { + +class ScopedTrace { +public: +inline ScopedTrace(uint64_t tag, const char* name) + : mTag(tag) { + atrace_begin(mTag,name); +} + +inline ~ScopedTrace() { + atrace_end(mTag); +} + +private: + uint64_t mTag; +}; + +}; // namespace default_camera_hal + +#endif // CAMERA_SCOPED_TRACE_H |