doc groups

This commit is contained in:
2022-04-06 20:11:47 +03:00
parent c90d06871e
commit d5c27b1181
93 changed files with 1080 additions and 324 deletions

View File

@@ -1,25 +1,6 @@
#include "pip.h" #include "pip.h"
//! [main] //! [main]
int main(int argc, char ** argv) {
PICLI cli(argc, argv);
cli.addArgument("console");
cli.addArgument("debug");
cli.addArgument("Value", "v", "value", true);
if (cli.hasArgument("console"))
piCout << "console active";
if (cli.hasArgument("debug"))
piCout << "debug active";
piCout << "Value =" << cli.argumentValue("Value");
return 0;
}
These executions are similar:
a.out -cd -v 10
a.out --value 10 -dc
a.out -c -v 10 -d
a.out --console -d -v 10
a.out --debug -c --value 10
//! [main] //! [main]
void _() { void _() {

View File

@@ -1,5 +1,8 @@
/*! \file picloudbase.h /*! \file picloudbase.h
* \brief PICloud Base - Base class for PICloudClient and PICloud Server * \ingroup Cloud
* \~\brief
* \~english Base class for PICloudClient and PICloudServer
* \~russian Базовый класс для PICloudClient и PICloudServer
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file picloudclient.h /*! \file picloudclient.h
* \brief PICloud Client * \ingroup Cloud
* \~\brief
* \~english PICloud Client
* \~russian Клиент PICloud
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -16,6 +16,37 @@
You should have received a copy of the GNU Lesser General Public License 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/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
//! \defgroup Cloud
//! \~\brief
//! \~english Cloud transport over ethernet
//! \~russian Облачный транспорт через ethernet
//!
//! \~\details
//! \~english \section cmake_module Building with CMake
//! \~russian \section cmake_module Сборка с использованием CMake
//!
//! \code
//! find_package(PIP REQUIRED)
//! target_link_libraries([target] PIP::Cloud)
//! \endcode
//!
//! \~english \par Common
//! \~russian \par Общее
//!
//! \~english
//! These files provides server-side and client-side of PICloud transport.
//!
//! \~russian
//! Эти файлы обеспечивают серверную и клиентскую сторону транспорта PICloud.
//!
//! \~\authors
//! \~english
//! Ivan Pelipenko peri4ko@yandex.ru;
//! Andrey Bychkov work.a.b@yandex.ru;
//! \~russian
//! Иван Пелипенко peri4ko@yandex.ru;
//! Андрей Бычков work.a.b@yandex.ru;
//!
#ifndef PICLOUDMODULE_H #ifndef PICLOUDMODULE_H
#define PICLOUDMODULE_H #define PICLOUDMODULE_H

View File

@@ -1,5 +1,8 @@
/*! \file picloudserver.h /*! \file picloudserver.h
* \brief PICloud Server * \ingroup Cloud
* \~\brief
* \~english PICloud Server
* \~russian Сервер PICloud
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file picloudtcp.h /*! \file picloudtcp.h
* \brief PICloud TCP transport * \ingroup Cloud
* \~\brief
* \~english PICloud TCP transport
* \~russian TCP слой PICloud
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file picodeinfo.h /*! \file picodeinfo.h
* \brief C++ code info structs * \ingroup Code
* \~\brief
* \~english C++ code info structs
* \~russian Структуры для C++ кода
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -16,6 +16,37 @@
You should have received a copy of the GNU Lesser General Public License 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/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
//! \defgroup Code
//! \~\brief
//! \~english C++ code parsing
//! \~russian Разбор C++ кода
//!
//! \~\details
//! \~english \section cmake_module Building with CMake
//! \~russian \section cmake_module Сборка с использованием CMake
//!
//! \code
//! find_package(PIP REQUIRED)
//! target_link_libraries([target] PIP)
//! \endcode
//!
//! \~english \par Common
//! \~russian \par Общее
//!
//! \~english
//! These files provides parsing C++ code and storage to use results of \a pip_cmg utility.
//!
//! \~russian
//! Эти файлы обеспечивают разбор C++ кода и хранение результатов работы утилиты \a pip_cmg.
//!
//! \~\authors
//! \~english
//! Ivan Pelipenko peri4ko@yandex.ru;
//! Andrey Bychkov work.a.b@yandex.ru;
//! \~russian
//! Иван Пелипенко peri4ko@yandex.ru;
//! Андрей Бычков work.a.b@yandex.ru;
//!
#ifndef PICODEMODULE_H #ifndef PICODEMODULE_H
#define PICODEMODULE_H #define PICODEMODULE_H

View File

@@ -1,5 +1,8 @@
/*! \file picodeparser.h /*! \file picodeparser.h
* \brief C++ code parser * \ingroup Code
* \~\brief
* \~english C++ code parser
* \~russian Разбор C++ кода
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,9 @@
/*! \file picompress.h /*! \file picompress.h
* \brief Compress class using zlib * \brief
* \ingroup Compress
* \~\brief
* \~english Compress class zlib
* \~russian Сжатие с помощью zlib
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives
@@ -19,6 +23,37 @@
You should have received a copy of the GNU Lesser General Public License 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/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
//! \defgroup Compress
//! \~\brief
//! \~english Compression support
//! \~russian Поддержка сжатия
//!
//! \~\details
//! \~english \section cmake_module Building with CMake
//! \~russian \section cmake_module Сборка с использованием CMake
//!
//! \code
//! find_package(PIP REQUIRED)
//! target_link_libraries([target] PIP::Compress)
//! \endcode
//!
//! \~english \par Common
//! \~russian \par Общее
//!
//! \~english
//! These files provides simple compression and decompression support.
//!
//! \~russian
//! Эти файлы обеспечивают простое сжатие и распакову.
//!
//! \~\authors
//! \~english
//! Ivan Pelipenko peri4ko@yandex.ru;
//! Andrey Bychkov work.a.b@yandex.ru;
//! \~russian
//! Иван Пелипенко peri4ko@yandex.ru;
//! Андрей Бычков work.a.b@yandex.ru;
//!
#ifndef PICOMPRESS_H #ifndef PICOMPRESS_H
#define PICOMPRESS_H #define PICOMPRESS_H
@@ -26,8 +61,16 @@
#include "pip_compress_export.h" #include "pip_compress_export.h"
#include "pibytearray.h" #include "pibytearray.h"
//! \~english Compress "ba" with compression level "level", return empty %PIByteArray if no compression supports
//! \~russian Сжимает "ba" с уровнем сжатия "level", возвращает пустой %PIByteArray если нет поддержки
//! \~\ingroup Compress
//! \~\details
PIP_COMPRESS_EXPORT PIByteArray piCompress(const PIByteArray & ba, int level = 6); PIP_COMPRESS_EXPORT PIByteArray piCompress(const PIByteArray & ba, int level = 6);
//! \~english Decompress "zba", return empty %PIByteArray if no compression supports
//! \~russian Распаковывает "zba", возвращает пустой %PIByteArray если нет поддержки
//! \~\ingroup Compress
//! \~\details
PIP_COMPRESS_EXPORT PIByteArray piDecompress(const PIByteArray & zba); PIP_COMPRESS_EXPORT PIByteArray piDecompress(const PIByteArray & zba);
#endif // PICOMPRESS_H #endif // PICOMPRESS_H

View File

@@ -16,6 +16,37 @@
You should have received a copy of the GNU Lesser General Public License 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/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
//! \defgroup Console
//! \~\brief
//! \~english Console graphic
//! \~russian Графика в консоли
//!
//! \~\details
//! \~english \section cmake_module Building with CMake
//! \~russian \section cmake_module Сборка с использованием CMake
//!
//! \code
//! find_package(PIP REQUIRED)
//! target_link_libraries([target] PIP::Console)
//! \endcode
//!
//! \~english \par Common
//! \~russian \par Общее
//!
//! \~english
//! These files provides grab keyboard from console, simple tiling manager and virtual terminal.
//!
//! \~russian
//! Эти файлы обеспечивают захват клавиатуры в консоли, простой тайловый менеджер и виртуальный терминал.
//!
//! \~\authors
//! \~english
//! Ivan Pelipenko peri4ko@yandex.ru;
//! Andrey Bychkov work.a.b@yandex.ru;
//! \~russian
//! Иван Пелипенко peri4ko@yandex.ru;
//! Андрей Бычков work.a.b@yandex.ru;
//!
#ifndef PICONSOLEMODULE_H #ifndef PICONSOLEMODULE_H
#define PICONSOLEMODULE_H #define PICONSOLEMODULE_H

View File

@@ -1,5 +1,8 @@
/*! \file pikbdlistener.h /*! \file pikbdlistener.h
* \brief Keyboard console input listener * \ingroup Console
* \~\brief
* \~english Keyboard console input listener
* \~russian Консольный захват клавиатуры
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file piscreen.h /*! \file piscreen.h
* \brief Console GUI class * \ingroup Console
* \~\brief
* \~english Console tiling manager
* \~russian Консольный тайловый менеджер
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,7 +1,8 @@
/*! \file piscreenconsole.h /*! \file piscreenconsole.h
* \brief Tile for PIScreen with PIConsole API * \ingroup Console
* * \~\brief
* This file declares TileVars * \~english Tile for PIScreen with PIConsole API
* \~russian Тайл для PIScreen с API PIConsole
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file piscreendrawer.h /*! \file piscreendrawer.h
* \brief Drawer for PIScreen * \ingroup Console
* \~\brief
* \~english Drawer for PIScreen
* \~russian Отрисовщик для PIScreen
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file piscreentile.h /*! \file piscreentile.h
* \brief Basic PIScreen tile * \ingroup Console
* \~\brief
* \~english Basic PIScreen tile
* \~russian Базовый тайл для PIScreen
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file piscreentiles.h /*! \file piscreentiles.h
* \brief Various tiles for PIScreen * \ingroup Console
* \~\brief
* \~english Various tiles for PIScreen
* \~russian Различные тайлы для PIScreen
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file piscreentypes.h /*! \file piscreentypes.h
* \brief Types for PIScreen * \ingroup Console
* \~\brief
* \~english Types for PIScreen
* \~russian Типы для PIScreen
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file piterminal.h /*! \file piterminal.h
* \brief Virtual terminal * \ingroup Console
* \~\brief
* \~english Virtual terminal
* \~russian Виртуальный терминал
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -18,10 +18,22 @@
*/ */
//! \defgroup Containers //! \defgroup Containers
//! \~\brief //! \~\brief
//! \~english This module contains various standart containers realization. //! \~english Various standart containers realization
//! \~russian Модуль содержит основные классы контейнеров. //! \~russian Различные классы контейнеров
//!
//! \~\details //! \~\details
//! \~english This includes: //! \~english \section cmake_module Building with CMake
//! \~russian \section cmake_module Сборка с использованием CMake
//!
//! \~\code
//! find_package(PIP REQUIRED)
//! target_link_libraries([target] PIP)
//! \endcode
//!
//! \~english \section containers_module_list Content
//! \~russian \section containers_module_list Состав
//!
//! \~english
//! Class | Description //! Class | Description
//! ------------- | ----------- //! ------------- | -----------
//! \a PIVector | Linear array, fast back insert //! \a PIVector | Linear array, fast back insert
@@ -33,7 +45,7 @@
//! \a PIPair | Pair //! \a PIPair | Pair
//! \a PIVector2D | Linear 2D rectangle array //! \a PIVector2D | Linear 2D rectangle array
//! //!
//! \~russian В него входят: //! \~russian
//! Класс | Описание //! Класс | Описание
//! ------------- | ----------- //! ------------- | -----------
//! \a PIVector | Линейный массив, быстрое добавление в конец //! \a PIVector | Линейный массив, быстрое добавление в конец
@@ -46,16 +58,6 @@
//! \a PIVector2D | Линейный двумерный прямоугольный массив //! \a PIVector2D | Линейный двумерный прямоугольный массив
//! //!
//! //!
//! \~english \section cmake_build_containers Building with CMake
//! Use the `find_package()` command to locate PIP package:
//! \~russian \section cmake_build_containers Сборка с использованием CMake
//! Используйте команду `find_package()` для подключения PIP в CMake:
//! \~\code
//! find_package(PIP REQUIRED)
//! target_link_libraries(${PROJECT_NAME} PIP)
//! \endcode
//!
//!
//! \~english \section stl_iterators STL-Style Iterators //! \~english \section stl_iterators STL-Style Iterators
//! \~russian \section stl_iterators Итераторы в стиле STL //! \~russian \section stl_iterators Итераторы в стиле STL
//! \~english //! \~english

View File

@@ -44,7 +44,27 @@
//! //!
//! \~english \section PICLI_sec1 Example //! \~english \section PICLI_sec1 Example
//! \~russian \section PICLI_sec0 Пример //! \~russian \section PICLI_sec0 Пример
//! \~\snippet picli.cpp main //! \~\code
//! int main(int argc, char ** argv) {
//! PICLI cli(argc, argv);
//! cli.addArgument("console");
//! cli.addArgument("debug");
//! cli.addArgument("Value", "v", "value", true);
//! if (cli.hasArgument("console"))
//! piCout << "console active";
//! if (cli.hasArgument("debug"))
//! piCout << "debug active";
//! piCout << "Value =" << cli.argumentValue("Value");
//! return 0;
//! }
//!
//! These executions are similar:
//! a.out -cd -v 10
//! a.out --value 10 -dc
//! a.out -c -v 10 -d
//! a.out --console -d -v 10
//! a.out --debug -c --value 10
//! \endcode
//! //!
//! /} //! /}

View File

@@ -16,31 +16,37 @@
You should have received a copy of the GNU Lesser General Public License 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/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
/** \defgroup Core //! \defgroup Core
* \~\brief //! \~\brief
* \~english This module contains basic functionality. //! \~english Basic functionality.
* \~russian Модуль обеспечивает базовую функциональность. //! \~russian Базовая функциональность.
* //!
* \~\details //! \~\details
* Scope | Use //! \~english \section cmake_module Building with CMake
* ----- | ------- //! \~russian \section cmake_module Сборка с использованием CMake
* C++ | #include <picoremodule.h> //!
* CMake | PIP //! \code
* //! find_package(PIP REQUIRED)
* \~english //! target_link_libraries([target] PIP)
* These files provides platform abstraction, useful macros, methods and classes //! \endcode
* //!
* \~russian //! \~english \par Common
* Эти файлы обеспечивают абстракцию операционной системы, полезные макросы, методы и классы //! \~russian \par Общее
* //!
* \~\authors //! \~english
* \~english //! These files provides platform abstraction, useful macros, methods and classes
* Ivan Pelipenko peri4ko@yandex.ru; //!
* Andrey Bychkov work.a.b@yandex.ru; //! \~russian
* \~russian //! Эти файлы обеспечивают абстракцию операционной системы, полезные макросы, методы и классы
* Иван Пелипенко peri4ko@yandex.ru; //!
* Андрей Бычков work.a.b@yandex.ru; //! \~\authors
*/ //! \~english
//! Ivan Pelipenko peri4ko@yandex.ru;
//! Andrey Bychkov work.a.b@yandex.ru;
//! \~russian
//! Иван Пелипенко peri4ko@yandex.ru;
//! Андрей Бычков work.a.b@yandex.ru;
//!
#ifndef PICOREMODULE_H #ifndef PICOREMODULE_H
#define PICOREMODULE_H #define PICOREMODULE_H

View File

@@ -1,5 +1,8 @@
/*! \file piauth.h /*! \file piauth.h
* \brief PIP Authentication API * \ingroup Crypt
* \~\brief
* \~english Authentication API
* \~russian API аутентификации
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file picrypt.h /*! \file picrypt.h
* \brief Cryptographic class using lib Sodium * \ingroup Crypt
* \~\brief
* \~english Cryptographic using libsodium
* \~russian Шифрование с помощью libsodium
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -16,6 +16,37 @@
You should have received a copy of the GNU Lesser General Public License 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/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
//! \defgroup Crypt
//! \~\brief
//! \~english Cryptographic support
//! \~russian Поддержка шифрования
//!
//! \~\details
//! \~english \section cmake_module Building with CMake
//! \~russian \section cmake_module Сборка с использованием CMake
//!
//! \code
//! find_package(PIP REQUIRED)
//! target_link_libraries([target] PIP::Crypt)
//! \endcode
//!
//! \~english \par Common
//! \~russian \par Общее
//!
//! \~english
//! These files provides basic and symmetric cryptographic support via [libsodium](https://doc.libsodium.org/).
//!
//! \~russian
//! Эти файлы обеспечивают базовое и симметричное шифрование с помощью [libsodium](https://doc.libsodium.org/).
//!
//! \~\authors
//! \~english
//! Ivan Pelipenko peri4ko@yandex.ru;
//! Andrey Bychkov work.a.b@yandex.ru;
//! \~russian
//! Иван Пелипенко peri4ko@yandex.ru;
//! Андрей Бычков work.a.b@yandex.ru;
//!
#ifndef PICRYPTMODULE_H #ifndef PICRYPTMODULE_H
#define PICRYPTMODULE_H #define PICRYPTMODULE_H

View File

@@ -1,5 +1,8 @@
/*! \file piellipsoidmodel.h /*! \file piellipsoidmodel.h
* \brief Contains geo ellipsoid models * \ingroup Geo
* \~\brief
* \~english Geographical ellipsoid Earth models
* \~russian Географическая эллипсоидная модель Земли
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -16,6 +16,39 @@
You should have received a copy of the GNU Lesser General Public License 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/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
//! \defgroup Geo
//! \~\brief
//! \~english Geographical position and Earth models
//! \~russian Географическая позиция и модели Земли
//!
//! \~\details
//! \~english \section cmake_module Building with CMake
//! \~russian \section cmake_module Сборка с использованием CMake
//!
//! \code
//! find_package(PIP REQUIRED)
//! target_link_libraries([target] PIP)
//! \endcode
//!
//! \~english \par Common
//! \~russian \par Общее
//!
//! \~english
//! These files provides geographical position, several Earth models and converting
//! from one model to another.
//!
//! \~russian
//! Эти файлы обеспечивают географическую позицию, несколько моделей Земли и
//! преобразования из одной модели в другую.
//!
//! \~\authors
//! \~english
//! Ivan Pelipenko peri4ko@yandex.ru;
//! Andrey Bychkov work.a.b@yandex.ru;
//! \~russian
//! Иван Пелипенко peri4ko@yandex.ru;
//! Андрей Бычков work.a.b@yandex.ru;
//!
#ifndef PIGEOMODULE_H #ifndef PIGEOMODULE_H
#define PIGEOMODULE_H #define PIGEOMODULE_H

View File

@@ -1,5 +1,8 @@
/*! \file pigeoposition.h /*! \file pigeoposition.h
* \brief Class for geo position storage and conversions * \ingroup Geo
* \~\brief
* \~english Class for geo position storage and conversions
* \~russian Класс для хранения географической позиции и преобразований
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -16,6 +16,37 @@
You should have received a copy of the GNU Lesser General Public License 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/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
//! \defgroup Introspection
//! \~\brief
//! \~english Internal PIP introspection
//! \~russian Внутренняя интроспекция PIP
//!
//! \~\details
//! \~english \section cmake_module Building with CMake
//! \~russian \section cmake_module Сборка с использованием 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 #ifndef PIINTROSPECTION_BASE_H
#define PIINTROSPECTION_BASE_H #define PIINTROSPECTION_BASE_H

View File

@@ -1,5 +1,8 @@
/*! \file pibinarylog.h /*! \file pibinarylog.h
* \brief Binary log * \ingroup IO
* \~\brief
* \~english Binary log
* \~russian Бинарный лог
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file pican.h /*! \file pican.h
* \brief CAN device * \ingroup IO
* \~\brief
* \~english CAN device
* \~russian Устройство CAN
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file piconfig.h /*! \file piconfig.h
* \brief Configuration parser and writer * \ingroup IO
* \~\brief
* \~english Configuration files parser and writer
* \~russian Разбор и запись конфигурационных файлов
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives
@@ -330,7 +333,7 @@ public:
bool open(const PIString & path, PIIODevice::DeviceMode mode = PIIODevice::ReadWrite); bool open(const PIString & path, PIIODevice::DeviceMode mode = PIIODevice::ReadWrite);
//! Read configuration string "string" in mode "mode" //! Read configuration string "string" in mode "mode"
bool open(PIString * string, PIIODevice::DeviceMode mode = PIIODevice::ReadWrite);\ bool open(PIString * string, PIIODevice::DeviceMode mode = PIIODevice::ReadWrite);
bool isOpened() const; bool isOpened() const;

View File

@@ -1,5 +1,8 @@
/*! \file pidir.h /*! \file pidir.h
* \brief Local directory * \ingroup IO
* \~\brief
* \~english Local directory
* \~russian Локальная директория
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file piethernet.h /*! \file piethernet.h
* \brief Ethernet device * \ingroup IO
* \~\brief
* \~english Ethernet device
* \~russian Устройство Ethernet
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file pifile.h /*! \file pifile.h
* \brief Local file * \ingroup IO
* \~\brief
* \~english Local file
* \~russian Локальный файл
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file pigpio.h /*! \file pigpio.h
* \brief GPIO * \ingroup IO
* \~\brief
* \~english GPIO
* \~russian GPIO
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file piiobytearray.h /*! \file piiobytearray.h
* \brief PIIODevice wrapper around PIByteArray * \ingroup IO
* \~\brief
* \~english PIIODevice wrapper around PIByteArray
* \~russian Обертка PIIODevice вокруг PIByteArray
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -23,95 +23,101 @@
#include "pipropertystorage.h" #include "pipropertystorage.h"
/*! \class PIIODevice //! \addtogroup IO
* \brief Base class for input/output classes //! \{
* //! \class PIIODevice piiodevice.h
* \section PIIODevice_sec0 Synopsis //! \brief
* This class provide open/close logic, threaded read/write and virtual input/output //! \~english Base class for input/output classes
* functions \a read() and \a write(). You should implement pure virtual //! \~russian Базовый класс утройств ввода/вывода
* function \a openDevice() in your subclass. //!
* //! \~\details
* \section PIIODevice_sec1 Open and close //! \section PIIODevice_sec0 Synopsis
* PIIODevice have boolean variable indicated open status. Returns of functions //! This class provide open/close logic, threaded read/write and virtual input/output
* \a openDevice() and \a closeDevice() change this variable. //! functions \a read() and \a write(). You should implement pure virtual
* //! function \a openDevice() in your subclass.
* \section PIIODevice_sec2 Threaded read //!
* PIIODevice based on PIThread, so it`s overload \a run() to exec \a read() //! \section PIIODevice_sec1 Open and close
* in background thread. If read is successful virtual function \a threadedRead() //! PIIODevice have boolean variable indicated open status. Returns of functions
* is executed. Default implementation of this function execute external static //! \a openDevice() and \a closeDevice() change this variable.
* function set by \a setThreadedReadSlot() with data set by \a setThreadedReadData(). //!
* Extrenal static function should have format \n //! \section PIIODevice_sec2 Threaded read
* bool func_name(void * Threaded_read_data, uchar * readed_data, int readed_size)\n //! PIIODevice based on PIThread, so it`s overload \a run() to exec \a read()
* Threaded read starts with function \a startThreadedRead(). //! in background thread. If read is successful virtual function \a threadedRead()
* //! is executed. Default implementation of this function execute external static
* \section PIIODevice_sec3 Threaded write //! function set by \a setThreadedReadSlot() with data set by \a setThreadedReadData().
* PIIODevice aggregate another PIThread to perform a threaded write by function //! Extrenal static function should have format \n
* \a writeThreaded(). This function add task to internal queue and return //! bool func_name(void * Threaded_read_data, uchar * readed_data, int readed_size)\n
* queue entry ID. You should start write thread by function \a startThreadedWrite. //! Threaded read starts with function \a startThreadedRead().
* On successful write event \a threadedWriteEvent is raised with two arguments - //!
* task ID and written bytes count. //! \section PIIODevice_sec3 Threaded write
* //! PIIODevice aggregate another PIThread to perform a threaded write by function
* \section PIIODevice_sec4 Internal buffer //! \a writeThreaded(). This function add task to internal queue and return
* PIIODevice have internal buffer for threaded read, and \a threadedRead() function //! queue entry ID. You should start write thread by function \a startThreadedWrite.
* receive pointer to this buffer in first argument. You can adjust size of this buffer //! On successful write event \a threadedWriteEvent is raised with two arguments -
* by function \a setThreadedReadBufferSize() \n //! task ID and written bytes count.
* Default size of this buffer is 4096 bytes. //!
* //! \section PIIODevice_sec4 Internal buffer
* \section PIIODevice_sec5 Reopen //! PIIODevice have internal buffer for threaded read, and \a threadedRead() function
* When threaded read is begin its call \a open() if device is closed. While threaded //! receive pointer to this buffer in first argument. You can adjust size of this buffer
* read running PIIODevice check if device opened every read and if not call \a open() //! by function \a setThreadedReadBufferSize() \n
* every reopen timeout if reopen enabled. Reopen timeout is set by \a setReopenTimeout(), //! Default size of this buffer is 4096 bytes.
* reopen enable is set by \a setReopenEnabled(). //!
* //! \section PIIODevice_sec5 Reopen
* \section PIIODevice_sec6 Configuration //! When threaded read is begin its call \a open() if device is closed. While threaded
* This is virtual function \a configureDevice() which executes when \a configure() //! read running PIIODevice check if device opened every read and if not call \a open()
* executes. This function takes two arguments: "e_main" and "e_parent" as void*. There //! every reopen timeout if reopen enabled. Reopen timeout is set by \a setReopenTimeout(),
* are pointers to PIConfig::Entry entries of section "section" and their parent. If //! reopen enable is set by \a setReopenEnabled().
* there is no parent "e_parent" = 0. Function \a configure() set three parameters of //!
* device: "reopenEnabled", "reopenTimeout" and "threadedReadBufferSize", then execute //! \section PIIODevice_sec6 Configuration
* function \a configureDevice(). //! This is virtual function \a configureDevice() which executes when \a configure()
* \n Each ancestor of %PIIODevice reimlements \a configureDevice() function to be able //! executes. This function takes two arguments: "e_main" and "e_parent" as void*. There
* to be confured from configuration file. This parameters described at section //! are pointers to PIConfig::Entry entries of section "section" and their parent. If
* "Configurable parameters" in the class reference. \n Usage example: //! there is no parent "e_parent" = 0. Function \a configure() set three parameters of
* \snippet piiodevice.cpp configure //! device: "reopenEnabled", "reopenTimeout" and "threadedReadBufferSize", then execute
* Implementation example: //! function \a configureDevice().
* \snippet piiodevice.cpp configureDevice //! \n Each ancestor of %PIIODevice reimlements \a configureDevice() function to be able
* //! to be confured from configuration file. This parameters described at section
* \section PIIODevice_sec7 Creating devices by unambiguous string //! "Configurable parameters" in the class reference. \n Usage example:
* There are some virtual functions to describe child class without its declaration. //! \snippet piiodevice.cpp configure
* \n \a fullPathPrefix() should returns unique prefix of device //! Implementation example:
* \n \a constructFullPath() should returns full unambiguous string, contains prefix and all device parameters //! \snippet piiodevice.cpp configureDevice
* \n \a configureFromFullPath() provide configuring device from full unambiguous string without prefix and "://" //!
* \n Macro PIIODEVICE should be used instead of PIOBJECT //! \section PIIODevice_sec7 Creating devices by unambiguous string
* \n Macro REGISTER_DEVICE should be used after definition of class, i.e. at the last line of *.cpp file //! There are some virtual functions to describe child class without its declaration.
* \n \n If custom I/O device corresponds there rules, it can be returned by function \a createFromFullPath(). //! \n \a fullPathPrefix() should returns unique prefix of device
* \n Each PIP I/O device has custom unambiguous string description: //! \n \a constructFullPath() should returns full unambiguous string, contains prefix and all device parameters
* * PIFile: "file://<path>" //! \n \a configureFromFullPath() provide configuring device from full unambiguous string without prefix and "://"
* * PIBinaryLog: "binlog://<logDir>[:<filePrefix>][:<defaultID>]" //! \n Macro PIIODEVICE should be used instead of PIOBJECT
* * PISerial: "ser://<device>:<speed(50|...|115200)>[:<dataBitsCount(6|7|8)>][:<parity(N|E|O)>][:<stopBits(1|2)>]" //! \n Macro REGISTER_DEVICE should be used after definition of class, i.e. at the last line of *.cpp file
* * PIEthernet: UDP "eth://UDP:<readIP>:<readPort>:<sendIP>:<sendPort>[:<multicast(mcast:<ip>)>]" //! \n \n If custom I/O device corresponds there rules, it can be returned by function \a createFromFullPath().
* * PIEthernet: TCP "eth://TCP:<IP>:<Port>" //! \n Each PIP I/O device has custom unambiguous string description:
* * PIUSB: "usb://<vid>:<pid>[:<deviceNumber>][:<readEndpointNumber>][:<writeEndpointNumber>]" //! * PIFile: "file://<path>"
* \n \n Examples: //! * PIBinaryLog: "binlog://<logDir>[:<filePrefix>][:<defaultID>]"
* * PIFile: "file://../text.txt" //! * PISerial: "ser://<device>:<speed(50|...|115200)>[:<dataBitsCount(6|7|8)>][:<parity(N|E|O)>][:<stopBits(1|2)>]"
* * PIBinaryLog: "binlog://../logs/:mylog_:1" //! * PIEthernet: UDP "eth://UDP:<readIP>:<readPort>:<sendIP>:<sendPort>[:<multicast(mcast:<ip>)>]"
* * PISerial: "ser:///dev/ttyUSB0:9600:8:N:1", equivalent "ser:///dev/ttyUSB0:9600" //! * PIEthernet: TCP "eth://TCP:<IP>:<Port>"
* * PIEthernet: "eth://TCP:127.0.0.1:16666", "eth://UDP:192.168.0.5:16666:192.168.0.6:16667:mcast:234.0.2.1:mcast:234.0.2.2" //! * PIUSB: "usb://<vid>:<pid>[:<deviceNumber>][:<readEndpointNumber>][:<writeEndpointNumber>]"
* * PIUSB: "usb://0bb4:0c86:1:1:2" //! \n \n Examples:
* \n \n //! * PIFile: "file://../text.txt"
* So, custom I/O device can be created with next call: //! * PIBinaryLog: "binlog://../logs/:mylog_:1"
* \code{cpp} //! * PISerial: "ser:///dev/ttyUSB0:9600:8:N:1", equivalent "ser:///dev/ttyUSB0:9600"
* // creatring devices //! * PIEthernet: "eth://TCP:127.0.0.1:16666", "eth://UDP:192.168.0.5:16666:192.168.0.6:16667:mcast:234.0.2.1:mcast:234.0.2.2"
* PISerial * ser = (PISerial * )PIIODevice::createFromFullPath("ser://COM1:115200"); //! * PIUSB: "usb://0bb4:0c86:1:1:2"
* PIEthernet * eth = (PIEthernet * )PIIODevice::createFromFullPath("eth://UDP:127.0.0.1:4001:127.0.0.1:4002"); //! \n \n
* // examine devices //! So, custom I/O device can be created with next call:
* piCout << ser << ser->properties(); //! \code{cpp}
* piCout << eth << eth->properties(); //! // creatring devices
* \endcode //! PISerial * ser = (PISerial * )PIIODevice::createFromFullPath("ser://COM1:115200");
* //! PIEthernet * eth = (PIEthernet * )PIIODevice::createFromFullPath("eth://UDP:127.0.0.1:4001:127.0.0.1:4002");
* \section PIIODevice_ex0 Example //! // examine devices
* \snippet piiodevice.cpp 0 //! piCout << ser << ser->properties();
*/ //! piCout << eth << eth->properties();
//! \endcode
//!
//! \section PIIODevice_ex0 Example
//! \snippet piiodevice.cpp 0
//!
//! \}
PIMutex PIIODevice::nfp_mutex; PIMutex PIIODevice::nfp_mutex;

View File

@@ -1,5 +1,8 @@
/*! \file piiodevice.h /*! \file piiodevice.h
* \brief Abstract input/output device * \ingroup IO
* \~\brief
* \~english Abstract input/output device
* \~russian Базовый класс утройств ввода/вывода
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -16,6 +16,38 @@
You should have received a copy of the GNU Lesser General Public License 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/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
//! \defgroup IO
//! \~\brief
//! \~english Input/output devices.
//! \~russian Устройства ввода/вывода.
//!
//! \~\details
//! \~english \section cmake_module Building with CMake
//! \~russian \section cmake_module Сборка с использованием CMake
//!
//! \code
//! find_package(PIP REQUIRED)
//! target_link_libraries([target] PIP)
//! \endcode
//!
//! \~english \par Common
//! \~russian \par Общее
//!
//! \~english
//! These files provides base IO device, many realizations and utilites to work with %PIIODevice
//!
//! \~russian
//! Эти файлы обеспечивают базовый класс устройства ввода/вывода, много реализаций и утилит
//! для работы с %PIIODevice
//!
//! \~\authors
//! \~english
//! Ivan Pelipenko peri4ko@yandex.ru;
//! Andrey Bychkov work.a.b@yandex.ru;
//! \~russian
//! Иван Пелипенко peri4ko@yandex.ru;
//! Андрей Бычков work.a.b@yandex.ru;
//!
#ifndef PIIODEVICESMODULE_H #ifndef PIIODEVICESMODULE_H
#define PIIODEVICESMODULE_H #define PIIODEVICESMODULE_H

View File

@@ -1,5 +1,8 @@
/*! \file piiostring.h /*! \file piiostring.h
* \brief PIIODevice wrapper around PIString * \ingroup IO
* \~\brief
* \~english PIIODevice wrapper around PIString
* \~russian Обертка PIIODevice вокруг PIString
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file pipeer.h /*! \file pipeer.h
* \brief Peering net node * \ingroup IO
* \~\brief
* \~english Peering net node
* \~russian Элемент пиринговой сети
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file piserial.h /*! \file piserial.h
* \brief Serial device * \ingroup IO
* \~\brief
* \~english Serial device
* \~russian Последовательный порт
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file pisharedmemory.h /*! \file pisharedmemory.h
* \brief Shared memory * \ingroup IO
* \~\brief
* \~english Shared memory
* \~russian Разделяемая память
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file pispi.h /*! \file pispi.h
* \brief SPI device * \ingroup IO
* \~\brief
* \~english SPI device
* \~russian Устройство SPI
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file pitransparentdevice.h /*! \file pitransparentdevice.h
* \brief PIIODevice that pass write to read * \ingroup IO
* \~\brief
* \~english PIIODevice that pass write to read
* \~russian PIIODevice который транслирует запись на чтение
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file piusb.h /*! \file piusb.h
* \brief USB device * \ingroup USB
* \~\brief
* \~english USB device
* \~russian Устройство USB
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives
@@ -19,6 +22,37 @@
You should have received a copy of the GNU Lesser General Public License 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/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
//! \defgroup USB
//! \~\brief
//! \~english USB support via libusb
//! \~russian Поддержка USB с помощью libusb
//!
//! \~\details
//! \~english \section cmake_module Building with CMake
//! \~russian \section cmake_module Сборка с использованием CMake
//!
//! \code
//! find_package(PIP REQUIRED)
//! target_link_libraries([target] PIP::USB)
//! \endcode
//!
//! \~english \par Common
//! \~russian \par Общее
//!
//! \~english
//! These files provides works with raw USB device
//!
//! \~russian
//! Эти файлы обеспечивают работу с сырым USB устройством
//!
//! \~\authors
//! \~english
//! Ivan Pelipenko peri4ko@yandex.ru;
//! Andrey Bychkov work.a.b@yandex.ru;
//! \~russian
//! Иван Пелипенко peri4ko@yandex.ru;
//! Андрей Бычков work.a.b@yandex.ru;
//!
#ifndef PIUSB_H #ifndef PIUSB_H
#define PIUSB_H #define PIUSB_H

View File

@@ -1,5 +1,8 @@
/*! \file pibasetransfer.h /*! \file pibasetransfer.h
* \brief Base class for reliable send and receive data in fixed packets with error correction, pause and resume * \ingroup IO
* \~\brief
* \~english Base class for reliable send and receive data in fixed packets with error correction, pause and resume
* \~russian Базовый класс для надежного обмена данными с помощью фиксированных пакетов с коррекцией ошибок и паузой
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file pibroadcast.h /*! \file pibroadcast.h
* \brief Broadcast for all interfaces, including loopback * \ingroup IO-Utils
* \~\brief
* \~english Broadcast for all interfaces, including loopback
* \~russian Широкое вещание на все интерфейсы, включая loopback
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,9 @@
/*! \file piconnection.h /*! \file piconnection.h
* \brief Complex I/O point * \brief
* \ingroup IO-Utils
* \~\brief
* \~english Complex I/O point
* \~russian Составное устройство ввода/вывода
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file pidatatransfer.h /*! \file pidatatransfer.h
* \brief Class for send and receive PIByteArray via \a PIBaseTransfer * \ingroup IO
* \~\brief
* \~english Class for send and receive PIByteArray via \a PIBaseTransfer
* \~russian Класс для отправки и приема PIByteArray с помощью \a PIBaseTransfer
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file pidiagnostics.h /*! \file pidiagnostics.h
* \brief Connection quality diagnostics * \ingroup IO
* \~\brief
* \~english Connection quality diagnostics
* \~russian Диагностика качества связи
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file piethutilbase.h /*! \file piethutilbase.h
* \brief Base class for ethernet utils * \ingroup IO-Utils
* \~\brief
* \~english Base class for ethernet utils
* \~russian Базовый класс для утилит ethernet
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file pifiletransfer.h /*! \file pifiletransfer.h
* \brief Class for send and receive files and directories via \a PIBaseTransfer * \ingroup IO
* \~\brief
* \~english Class for send and receive files and directories via \a PIBaseTransfer
* \~russian Класс для отправки и приема файлов и папок с помощью \a PIBaseTransfer
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -16,10 +16,42 @@
You should have received a copy of the GNU Lesser General Public License 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/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
//! \defgroup IO-Utils
//! \~\brief
//! \~english Complex channel transport
//! \~russian Сложный канальный транспорт
//!
//! \~\details
//! \~english \section cmake_module Building with CMake
//! \~russian \section cmake_module Сборка с использованием CMake
//!
//! \code
//! find_package(PIP REQUIRED)
//! target_link_libraries([target] PIP::IOUtils)
//! \endcode
//!
//! \~english \par Common
//! \~russian \par Общее
//!
//! \~english
//! These files provides complex transport over ethernet
//!
//! \~russian
//! Эти файлы обеспечивают сложный транспорт поверх ethernet
//!
//! \~\authors
//! \~english
//! Ivan Pelipenko peri4ko@yandex.ru;
//! Andrey Bychkov work.a.b@yandex.ru;
//! \~russian
//! Иван Пелипенко peri4ko@yandex.ru;
//! Андрей Бычков work.a.b@yandex.ru;
//!
#ifndef PIIOUTILSMODULE_H #ifndef PIIOUTILSMODULE_H
#define PIIOUTILSMODULE_H #define PIIOUTILSMODULE_H
#include "pibasetransfer.h" #include "pibasetransfer.h"
#include "piconnection.h" #include "piconnection.h"
#include "pidatatransfer.h" #include "pidatatransfer.h"

View File

@@ -1,5 +1,8 @@
/*! \file pipacketextractor.h /*! \file pipacketextractor.h
* \brief Packets extractor * \ingroup IO
* \~\brief
* \~english Packets extractor
* \~russian Извлекатель пакетов
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file piparsehelper.h /*! \file piparsehelper.h
* \brief Helper class to automate structs receive * \ingroup IO
* \~\brief
* \~english Helper class to automate structs receive
* \~russian Класс для автоматизации приема структур
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file pistreampacker.h /*! \file pistreampacker.h
* \brief Simple packet wrap aroud any PIIODevice * \ingroup IO-Utils
* \~\brief
* \~english Simple packet wrap aroud any PIIODevice
* \~russian Простая фрагментация пакетов, использует любой PIIODevice
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file piluaprogram.h /*! \file piluaprogram.h
* \brief Lua Program * \ingroup Lua
* \~\brief
* \~english Lua Program
* \~russian Программа Lua
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,7 +1,8 @@
/*! \file pip_lua.h /*! \file pip_lua.h
* \brief PIP Lua bindings * \ingroup Lua
* * \~\brief
* This file declare conversions for PIP types via LuaBridge * \~english Conversions between PIP types and LuaBridge
* \~russian Преобразования между типами PIP и LuaBridge
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives
@@ -21,6 +22,38 @@
You should have received a copy of the GNU Lesser General Public License 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/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
//! \defgroup Lua
//! \~\brief
//! \~english Lua programs support
//! \~russian Поддержка программ Lua
//!
//! \~\details
//! \~english \section cmake_module Building with CMake
//! \~russian \section cmake_module Сборка с использованием CMake
//!
//! \code
//! find_package(PIP REQUIRED)
//! target_link_libraries([target] PIP::Lua)
//! \endcode
//!
//! \~english \par Common
//! \~russian \par Общее
//!
//! \~english
//! These files provides execute Lua programs inside C++ code.
//!
//! \~russian
//! Эти файлы обеспечивают возможность выполнения программ Lua внутри C++ кода.
//!
//! \~\authors
//! \~english
//! Ivan Pelipenko peri4ko@yandex.ru;
//! Andrey Bychkov work.a.b@yandex.ru;
//! \~russian
//! Иван Пелипенко peri4ko@yandex.ru;
//! Андрей Бычков work.a.b@yandex.ru;
//!
#ifndef PIP_LUA_H #ifndef PIP_LUA_H
#define PIP_LUA_H #define PIP_LUA_H

View File

@@ -1,5 +1,8 @@
/*! \file picrc.h /*! \file picrc.h
* \brief CRC checksum calculator * \ingroup Math
* \~\brief
* \~english CRC checksum calculation
* \~russian Вычисление CRC контрольной суммы
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file pievaluator.h /*! \file pievaluator.h
* \brief Mathematic expressions calculator * \ingroup Math
* \~\brief
* \~english Mathematic expressions calculator
* \~russian Вычислитель математических выражений
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,9 @@
/*! \file pifft.h /*! \file pifft.h
* \brief Class for FFT, IFFT and Hilbert transformations * \ingroup Math
* \ingroup FFTW
* \~\brief
* \~english FFT, IFFT and Hilbert transformations
* \~russian БПФ, ОБПФ и преобразования Гильберта
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives
@@ -19,6 +23,37 @@
You should have received a copy of the GNU Lesser General Public License 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/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
//! \defgroup FFTW
//! \~\brief
//! \~english Optimized FFT support via libfftw3
//! \~russian Оптимизированный БПФ с помощью libfftw3
//!
//! \~\details
//! \~english \section cmake_module Building with CMake
//! \~russian \section cmake_module Сборка с использованием CMake
//!
//! \code
//! find_package(PIP REQUIRED)
//! target_link_libraries([target] PIP::FFTW)
//! \endcode
//!
//! \~english \par Common
//! \~russian \par Общее
//!
//! \~english
//! These files provides FFT using [libfftw3](https://fftw.org/)
//!
//! \~russian
//! Эти файлы обеспечивают БПФ с использованием [libfftw3](https://fftw.org/)
//!
//! \~\authors
//! \~english
//! Ivan Pelipenko peri4ko@yandex.ru;
//! Andrey Bychkov work.a.b@yandex.ru;
//! \~russian
//! Иван Пелипенко peri4ko@yandex.ru;
//! Андрей Бычков work.a.b@yandex.ru;
//!
#ifndef PIFFT_H #ifndef PIFFT_H
#define PIFFT_H #define PIFFT_H

View File

@@ -3,13 +3,6 @@
* \brief * \brief
* \~english Two-dimensional line class * \~english Two-dimensional line class
* \~russian Класс отрезка двумерной линии * \~russian Класс отрезка двумерной линии
* * \~\authors
* \~english
* Ivan Pelipenko peri4ko@yandex.ru;
* Andrey Bychkov work.a.b@yandex.ru;
* \~russian
* Иван Пелипенко peri4ko@yandex.ru;
* Андрей Бычков work.a.b@yandex.ru;
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,15 +1,8 @@
/*! \file pimathbase.h /*! \file pimathbase.h
* \defgroup Math * \ingroup Math
* \brief * \~\brief
* \~english Basic mathematical functions and defines * \~english Basic mathematical functions and defines
* \~russian Базовые математические функции и дефайны * \~russian Базовые математические функции и дефайны
* \~\authors
* \~english
* Ivan Pelipenko peri4ko@yandex.ru;
* Andrey Bychkov work.a.b@yandex.ru;
* \~russian
* Иван Пелипенко peri4ko@yandex.ru;
* Андрей Бычков work.a.b@yandex.ru;
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file pimathcomplex.h /*! \file pimathcomplex.h
* \brief PIP math complex * \ingroup Math
* \~\brief
* \~english Complex numbers
* \~russian Комплексные числа
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,7 +1,8 @@
/*! \file pimathmatrix.h /*! \file pimathmatrix.h
* \brief PIMathMatrix * \ingroup Math
* * \~\brief
* This file declare math matrix class, which performs various matrix operations * \~english Math matrix
* \~russian Математическая матрица
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -16,6 +16,37 @@
You should have received a copy of the GNU Lesser General Public License 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/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
//! \defgroup Math
//! \~\brief
//! \~english Basic mathematical functions and defines
//! \~russian Базовые математические функции и дефайны
//!
//! \~\details
//! \~english \section cmake_module Building with CMake
//! \~russian \section cmake_module Сборка с использованием CMake
//!
//! \code
//! find_package(PIP REQUIRED)
//! target_link_libraries([target] PIP)
//! \endcode
//!
//! \~english \par Common
//! \~russian \par Общее
//!
//! \~english
//! These files provides vectors, matrices, complex numbers, quaternions, FFT and geometry classes
//!
//! \~russian
//! Эти файлы обеспечивают вектора, матрицы, комплексные числа, кватернионы, БПФ и классы геометрических фигур
//!
//! \~\authors
//! \~english
//! Ivan Pelipenko peri4ko@yandex.ru;
//! Andrey Bychkov work.a.b@yandex.ru;
//! \~russian
//! Иван Пелипенко peri4ko@yandex.ru;
//! Андрей Бычков work.a.b@yandex.ru;
//!
#ifndef PIMATHMODULE_H #ifndef PIMATHMODULE_H
#define PIMATHMODULE_H #define PIMATHMODULE_H

View File

@@ -1,5 +1,8 @@
/*! \file pimathvector.h /*! \file pimathvector.h
* \brief PIMathVector * \ingroup Math
* \~\brief
* \~english Math vector
* \~russian Математический вектор
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -3,13 +3,6 @@
//! \brief //! \brief
//! \~english Two-dimensional point class //! \~english Two-dimensional point class
//! \~russian Класс двумерной точки //! \~russian Класс двумерной точки
//! \~\authors
//! \~english
//! Ivan Pelipenko peri4ko@yandex.ru;
//! Andrey Bychkov work.a.b@yandex.ru;
//! \~russian
//! Иван Пелипенко peri4ko@yandex.ru;
//! Андрей Бычков work.a.b@yandex.ru;
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives
Two-dimensional point class Two-dimensional point class

View File

@@ -1,5 +1,8 @@
/*! \file piquaternion.h /*! \file piquaternion.h
* \brief Class for quaternions * \ingroup Math
* \~\brief
* \~english Quaternion
* \~russian Кватернион
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -3,13 +3,6 @@
//! \brief //! \brief
//! \~english Rect class //! \~english Rect class
//! \~russian Класс прямоугольника //! \~russian Класс прямоугольника
//! \~\authors
//! \~english
//! Ivan Pelipenko peri4ko@yandex.ru;
//! Andrey Bychkov work.a.b@yandex.ru;
//! \~russian
//! Иван Пелипенко peri4ko@yandex.ru;
//! Андрей Бычков work.a.b@yandex.ru;
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives
Rect class Rect class

View File

@@ -1,5 +1,8 @@
/*! \file pistatistic.h /*! \file pistatistic.h
* \brief Class for calculating math statistic in values array * \ingroup Math
* \~\brief
* \~english Calculating math statistic of values array
* \~russian Вычисление математической статистики у массива чисел
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,3 +1,9 @@
/*! \file piopencl.h
* \ingroup OpenCL
* \~\brief
* \~english OpenCL classes
* \~russian Классы OpenCL
*/
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives
OpenCL wrappers OpenCL wrappers
@@ -16,6 +22,37 @@
You should have received a copy of the GNU Lesser General Public License 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/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
//! \defgroup OpenCL
//! \~\brief
//! \~english OpenCL support
//! \~russian Поддержка OpenCL
//!
//! \~\details
//! \~english \section cmake_module Building with CMake
//! \~russian \section cmake_module Сборка с использованием CMake
//!
//! \code
//! find_package(PIP REQUIRED)
//! target_link_libraries([target] PIP::OpenCL)
//! \endcode
//!
//! \~english \par Common
//! \~russian \par Общее
//!
//! \~english
//! These files provides OpenCL classes wrap.
//!
//! \~russian
//! Эти файлы обеспечивают классовую обвязку OpenCL.
//!
//! \~\authors
//! \~english
//! Ivan Pelipenko peri4ko@yandex.ru;
//! Andrey Bychkov work.a.b@yandex.ru;
//! \~russian
//! Иван Пелипенко peri4ko@yandex.ru;
//! Андрей Бычков work.a.b@yandex.ru;
//!
#ifndef PIOPENCL_H #ifndef PIOPENCL_H
#define PIOPENCL_H #define PIOPENCL_H

View File

@@ -1,5 +1,8 @@
/*! \file piresources.h /*! \file piresources.h
* \brief Resources subsystem * \ingroup Resources
* \~\brief
* \~english Resources subsystem
* \~russian Подсистема ресурсов
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives
@@ -19,6 +22,37 @@
You should have received a copy of the GNU Lesser General Public License 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/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
//! \defgroup Resources
//! \~\brief
//! \~english Resources subsystem
//! \~russian Подсистема ресурсов
//!
//! \~\details
//! \~english \section cmake_module Building with CMake
//! \~russian \section cmake_module Сборка с использованием CMake
//!
//! \code
//! find_package(PIP REQUIRED)
//! target_link_libraries([target] PIP)
//! \endcode
//!
//! \~english \par Common
//! \~russian \par Общее
//!
//! \~english
//! These files provides support of compiled-in files
//!
//! \~russian
//! Эти файлы обеспечивают поддержку вкомпиленных файлов
//!
//! \~\authors
//! \~english
//! Ivan Pelipenko peri4ko@yandex.ru;
//! Andrey Bychkov work.a.b@yandex.ru;
//! \~russian
//! Иван Пелипенко peri4ko@yandex.ru;
//! Андрей Бычков work.a.b@yandex.ru;
//!
#ifndef PIRESOURCES_H #ifndef PIRESOURCES_H
#define PIRESOURCES_H #define PIRESOURCES_H

View File

@@ -1,5 +1,8 @@
/*! \file pilibrary.h /*! \file pilibrary.h
* \brief Dynamic library * \ingroup System
* \~\brief
* \~english Run-time library
* \~russian Run-time библиотека
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file piplugin.h /*! \file piplugin.h
* \brief Plugin helpers * \ingroup System
* \~\brief
* \~english Plugin control
* \~russian Управление плагинами
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file piprocess.h /*! \file piprocess.h
* \brief Process * \ingroup System
* \~\brief
* \~english External process
* \~russian Внешний процесс
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file pisignals.h /*! \file pisignals.h
* \brief System signals * \ingroup System
* \~\brief
* \~english System signals
* \~russian Сигналы системы
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,3 +1,9 @@
/*! \file pisysteminfo.h
* \ingroup System
* \~\brief
* \~english System information
* \~russian Информация о системе
*/
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives
System information System information

View File

@@ -16,6 +16,39 @@
You should have received a copy of the GNU Lesser General Public License 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/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
//! \defgroup System
//! \~\brief
//! \~english System information and external executables and libraries support.
//! \~russian Информация о системе и поддержка внешних процессов и библиотек.
//!
//! \~\details
//! \~english \section cmake_module Building with CMake
//! \~russian \section cmake_module Сборка с использованием CMake
//!
//! \code
//! find_package(PIP REQUIRED)
//! target_link_libraries([target] PIP)
//! \endcode
//!
//! \~english \par Common
//! \~russian \par Общее
//!
//! \~english
//! These files provides system information, resource monitoring, run-time libraries and
//! control of external executables.
//!
//! \~russian
//! Эти файлы обеспечивают информацию о системе, мониторинг ресурсов, run-time библиотеки
//! и управление внешними исполняемыми файлами.
//!
//! \~\authors
//! \~english
//! Ivan Pelipenko peri4ko@yandex.ru;
//! Andrey Bychkov work.a.b@yandex.ru;
//! \~russian
//! Иван Пелипенко peri4ko@yandex.ru;
//! Андрей Бычков work.a.b@yandex.ru;
//!
#ifndef PISYSTEMMODULE_H #ifndef PISYSTEMMODULE_H
#define PISYSTEMMODULE_H #define PISYSTEMMODULE_H

View File

@@ -1,3 +1,9 @@
/*! \file pisystemmonitor.h
* \ingroup System
* \~\brief
* \~english System resources monitoring
* \~russian Мониторинг ресурсов системы
*/
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives
Process resource monitor Process resource monitor

View File

@@ -1,3 +1,9 @@
/*! \file piblockingqueue.h
* \ingroup Thread
* \~\brief
* \~english Queue with blocking
* \~russian Блокирующая очередь
*/
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,3 +1,9 @@
/*! \file piconditionvar.h
* \ingroup Thread
* \~\brief
* \~english Conditional variable
* \~russian Conditional variable
*/
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file pigrabberbase.h /*! \file pigrabberbase.h
* \brief Abstract class for create grabbers * \ingroup Thread
* \~\brief
* \~english Abstract class for create grabbers
* \~russian Базовый класс для создания грабберов
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file pimutex.h /*! \file pimutex.h
* \brief PIMutex, PIMutexLocker * \ingroup Thread
* \~\brief
* \~english Basic interthread lock
* \~russian Базовая межпоточная блокировка
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file pipipelinethread.h /*! \file pipipelinethread.h
* \brief Class for create multihread pipeline * \ingroup Thread
* \~\brief
* \~english Class for create multihread pipeline
* \~russian Класс для создания многопоточного конвейера
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file pispinlock.h /*! \file pispinlock.h
* \brief PISpinlock * \ingroup Thread
* \~\brief
* \~english Fast and full-load lock
* \~russian Быстрая блокировка с полной нагрузкой
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,7 +1,8 @@
/*! \file pithread.h /*! \file pithread.h
* \brief Thread * \ingroup Thread
* * \~\brief
* This file declare thread class and some wait functions * \~english Thread class
* \~russian Класс потока
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -16,6 +16,37 @@
You should have received a copy of the GNU Lesser General Public License 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/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
//! \defgroup Thread
//! \~\brief
//! \~english Multithreading support.
//! \~russian Поддержка многопоточности.
//!
//! \~\details
//! \~english \section cmake_module Building with CMake
//! \~russian \section cmake_module Сборка с использованием CMake
//!
//! \code
//! find_package(PIP REQUIRED)
//! target_link_libraries([target] PIP)
//! \endcode
//!
//! \~english \par Common
//! \~russian \par Общее
//!
//! \~english
//! These files provides thread, timer, blocking and several complex multithreading techniques
//!
//! \~russian
//! Эти файлы обеспечивают потоки, таймера, блокировки и несколько сложных многопоточных техник
//!
//! \~\authors
//! \~english
//! Ivan Pelipenko peri4ko@yandex.ru;
//! Andrey Bychkov work.a.b@yandex.ru;
//! \~russian
//! Иван Пелипенко peri4ko@yandex.ru;
//! Андрей Бычков work.a.b@yandex.ru;
//!
#ifndef PITHREADMODULE_H #ifndef PITHREADMODULE_H
#define PITHREADMODULE_H #define PITHREADMODULE_H

View File

@@ -1,5 +1,8 @@
/*! \file pithreadnotifier.h /*! \file pithreadnotifier.h
* \brief Class for simply notify and wait in different threads * \ingroup Thread
* \~\brief
* \~english Class for simple notify and wait in different threads
* \~russian Класс для простого уведомления и ожидания в различных потоках
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,7 +1,8 @@
/*! \file pithreadpoolloop.h /*! \file pithreadpoolloop.h
* \brief Thread pool loop * \ingroup Thread
* * \~\brief
* This file declare thread class and some wait functions * \~english Thread pool loop
* \~russian Пул потоков
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives

View File

@@ -1,5 +1,8 @@
/*! \file pitimer.h /*! \file pitimer.h
* \brief Timer * \ingroup Thread
* \~\brief
* \~english Timer
* \~russian Таймер
*/ */
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives