From 4cb0e8028cc1be2b60785fa00d972a0f031f41c6 Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Mon, 9 Oct 2017 10:32:42 +0200 Subject: [PATCH] feat(Tester): add tools to access private data --- .../utils => tester/tools}/private-access.h | 0 tester/tools/tester.h | 55 +++++++++++++++++++ 2 files changed, 55 insertions(+) rename {include/linphone/utils => tester/tools}/private-access.h (100%) create mode 100644 tester/tools/tester.h diff --git a/include/linphone/utils/private-access.h b/tester/tools/private-access.h similarity index 100% rename from include/linphone/utils/private-access.h rename to tester/tools/private-access.h diff --git a/tester/tools/tester.h b/tester/tools/tester.h new file mode 100644 index 000000000..9389c560d --- /dev/null +++ b/tester/tools/tester.h @@ -0,0 +1,55 @@ +/* + * tester.h + * Copyright (C) 2010-2017 Belledonne Communications SARL + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef _TESTER_H_ +#define _TESTER_H_ + +#include + +#include "utils/utils.h" + +// ============================================================================= + +// ----------------------------------------------------------------------------- +// Internal. +// ----------------------------------------------------------------------------- + +LINPHONE_BEGIN_NAMESPACE + +class Tester { +public: + template + static constexpr decltype(std::declval().getPrivate()) getPrivate (Object *cppObject) { + return cppObject->getPrivate(); + } + +private: + L_DISABLE_COPY(Tester); +}; + +LINPHONE_END_NAMESPACE + +// ----------------------------------------------------------------------------- +// Public. +// ----------------------------------------------------------------------------- + +#define L_GET_PRIVATE(OBJECT) \ + LinphonePrivate::Tester::getPrivate(LinphonePrivate::Utils::getPtr(OBJECT)) + +#endif // ifndef _TESTER_H_