97 lines
3.4 KiB
C++
97 lines
3.4 KiB
C++
/*! \file piintrospection_base.h
|
||
* \ingroup Introspection
|
||
* \~\brief
|
||
* \~english Base declarations for the introspection subsystem
|
||
* \~russian Базовые объявления подсистемы интроспекции
|
||
*/
|
||
/*
|
||
PIP - Platform Independent Primitives
|
||
Introspection module - base macros and types
|
||
Ivan Pelipenko peri4ko@yandex.ru
|
||
|
||
This program is free software: you can redistribute it and/or modify
|
||
it under the terms of the GNU Lesser General Public License as published by
|
||
the Free Software Foundation, either version 3 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 Lesser General Public License for more details.
|
||
|
||
You should have received a copy of the GNU Lesser General Public License
|
||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||
*/
|
||
//! \defgroup Introspection Introspection
|
||
//! \~\brief
|
||
//! \~english Internal PIP introspection
|
||
//! \~russian Внутренняя интроспекция PIP
|
||
//!
|
||
//! \~\details
|
||
//! \~english \section cmake_module_Introspection Building with CMake
|
||
//! \~russian \section cmake_module_Introspection Сборка с использованием CMake
|
||
//!
|
||
//! \~\code
|
||
//! find_package(PIP REQUIRED)
|
||
//! target_link_libraries([target] PIP)
|
||
//! \endcode
|
||
//!
|
||
//! \~english \par Common
|
||
//! \~russian \par Общее
|
||
//!
|
||
//! \~english
|
||
//! These files provides gathering and sending internal PIP statistics.
|
||
//!
|
||
//! \~russian
|
||
//! Эти файлы обеспечивают сбор и отправку внутренних статистик PIP.
|
||
//!
|
||
//! \~\authors
|
||
//! \~english
|
||
//! Ivan Pelipenko peri4ko@yandex.ru;
|
||
//! Andrey Bychkov work.a.b@yandex.ru;
|
||
//! \~russian
|
||
//! Иван Пелипенко peri4ko@yandex.ru;
|
||
//! Андрей Бычков work.a.b@yandex.ru;
|
||
//!
|
||
|
||
#ifndef PIINTROSPECTION_BASE_H
|
||
#define PIINTROSPECTION_BASE_H
|
||
|
||
#include "pibase.h"
|
||
|
||
class PIString;
|
||
class PIThread;
|
||
class PITimer;
|
||
class PIPeer;
|
||
class PIIntrospection;
|
||
class PIIntrospectionServer;
|
||
|
||
#ifdef DOXYGEN
|
||
|
||
//! \~\ingroup Introspection
|
||
//! \~\brief
|
||
//! \~english Declares singleton accessor `instance()` for an introspection interface class.
|
||
//! \~russian Объявляет метод-синглтон `instance()` для класса интерфейса интроспекции.
|
||
# define __PIINTROSPECTION_SINGLETON_H__(T)
|
||
|
||
//! \~\ingroup Introspection
|
||
//! \~\brief
|
||
//! \~english Defines singleton accessor `instance()` for an introspection interface class.
|
||
//! \~russian Определяет метод-синглтон `instance()` для класса интерфейса интроспекции.
|
||
# define __PIINTROSPECTION_SINGLETON_CPP__(T)
|
||
|
||
#else
|
||
|
||
#if defined(PIP_INTROSPECTION) && !defined(PIP_FORCE_NO_PIINTROSPECTION)
|
||
# define __PIINTROSPECTION_SINGLETON_H__(T) static PIIntrospection##T##Interface * instance();
|
||
|
||
# define __PIINTROSPECTION_SINGLETON_CPP__(T) \
|
||
PIIntrospection##T##Interface * PIIntrospection##T##Interface::instance() { \
|
||
static PIIntrospection##T##Interface ret; \
|
||
return &ret; \
|
||
}
|
||
#endif // PIP_INTROSPECTION
|
||
|
||
#endif // DOXYGEN
|
||
#endif // PIINTROSPECTION_BASE_H
|