12f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan/* 22f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan * Copyright 2010, The Android Open Source Project 32f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan * 42f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan * Licensed under the Apache License, Version 2.0 (the "License"); 52f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan * you may not use this file except in compliance with the License. 62f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan * You may obtain a copy of the License at 72f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan * 82f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan * http://www.apache.org/licenses/LICENSE-2.0 92f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan * 102f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan * Unless required by applicable law or agreed to in writing, software 112f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan * distributed under the License is distributed on an "AS IS" BASIS, 122f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 132f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan * See the License for the specific language governing permissions and 142f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan * limitations under the License. 152f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan */ 162f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan 172f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan#ifndef BCC_DEBUGHELPER_H 182f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan#define BCC_DEBUGHELPER_H 192f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan 202f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan#include "Config.h" 212f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan 222f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan#if USE_LOGGER 232f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan 242f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan#define LOG_TAG "bcc" 252f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan#include <cutils/log.h> 262f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan 272f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan#else // !USE_LOGGER 282f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan 292f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan#undef LOGV 302f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan#undef LOGI 312f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan#undef LOGD 322f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan#undef LOGW 332f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan#undef LOGE 342f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan#undef LOGA 352f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan 362f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan#define LOGV(...) 372f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan#define LOGI(...) 382f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan#define LOGD(...) 392f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan#define LOGW(...) 402f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan#define LOGE(...) 412f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan#define LOGA(...) 422f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan 432f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan#endif 442f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan 452f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan 462f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan#if !USE_FUNC_LOGGER 472f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan 482f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan#define BCC_FUNC_LOGGER() 492f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan 502f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan#else // USE_FUNC_LOGGER 512f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan 52998899fa3f8d598823fd3f8be48567d74a0a4c6cLogan Chien#if defined(__cplusplus) 532f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logannamespace bcc { 542f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan class FuncLogger { 552f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan private: 562f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan char const *mFuncName; 572f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan 582f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan public: 592f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan FuncLogger(char const *name) : mFuncName(name) { 602f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan LOGD("---> BEGIN: libbcc [ %s ]\n", name); 612f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan } 622f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan 632f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan ~FuncLogger() { 642f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan LOGD("---> END: libbcc [ %s ]\n", mFuncName); 652f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan } 662f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan }; 672f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan} // namespace bcc 682f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan 692f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan#define BCC_FUNC_LOGGER() bcc::FuncLogger XX__FuncLogger(__func__) 70998899fa3f8d598823fd3f8be48567d74a0a4c6cLogan Chien#endif 712f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan 722f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan#endif 732f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan 742f789f30fe97d0eb0dad2cc7b4b26665dca7d514Logan#endif // BCC_DEBUGHELPER_H 75