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,6 +1,9 @@
/*! \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
PICloud Base - Base class for PICloudClient and PICloud Server PICloud Base - Base class for PICloudClient and PICloud Server

View File

@@ -1,6 +1,9 @@
/*! \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
PICloud Client PICloud Client

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,6 +1,9 @@
/*! \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
PICloud Server PICloud Server

View File

@@ -1,6 +1,9 @@
/*! \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
PICloud TCP transport PICloud TCP transport

View File

@@ -1,6 +1,9 @@
/*! \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
C++ code info structs C++ code info structs

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,6 +1,9 @@
/*! \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
C++ code parser C++ code parser

View File

@@ -1,6 +1,10 @@
/*! \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
Compress class using zlib Compress class using zlib
@@ -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,6 +1,9 @@
/*! \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
Keyboard grabber for console Keyboard grabber for console

View File

@@ -1,6 +1,9 @@
/*! \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
Console GUI Console GUI

View File

@@ -1,8 +1,9 @@
/*! \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
Tile for PIScreen with PIConsole API Tile for PIScreen with PIConsole API

View File

@@ -1,6 +1,9 @@
/*! \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
Drawer for PIScreen Drawer for PIScreen

View File

@@ -1,6 +1,9 @@
/*! \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
Basic PIScreen tile Basic PIScreen tile

View File

@@ -1,6 +1,9 @@
/*! \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
Various tiles for PIScreen Various tiles for PIScreen

View File

@@ -1,6 +1,9 @@
/*! \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
Types for PIScreen Types for PIScreen

View File

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

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,6 +1,9 @@
/*! \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
PIP Authentication API PIP Authentication API

View File

@@ -1,6 +1,9 @@
/*! \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
Cryptographic class using lib Sodium Cryptographic class using lib Sodium

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,6 +1,9 @@
/*! \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
Contains geo ellipsoid models Contains geo ellipsoid models

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,6 +1,9 @@
/*! \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
Class for geo position storage and conversions Class for geo position storage and conversions

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,6 +1,9 @@
/*! \file pibinarylog.h /*! \file pibinarylog.h
* \brief Binary log * \ingroup IO
*/ * \~\brief
* \~english Binary log
* \~russian Бинарный лог
*/
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives
Class for write binary data to logfile, and read or playback this data Class for write binary data to logfile, and read or playback this data

View File

@@ -1,6 +1,9 @@
/*! \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
CAN CAN

View File

@@ -1,6 +1,9 @@
/*! \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
Configuration parser and writer Configuration parser and writer
@@ -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,6 +1,9 @@
/*! \file pidir.h /*! \file pidir.h
* \brief Local directory * \ingroup IO
*/ * \~\brief
* \~english Local directory
* \~russian Локальная директория
*/
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives
Directory Directory

View File

@@ -1,6 +1,9 @@
/*! \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
Ethernet, UDP/TCP Broadcast/Multicast Ethernet, UDP/TCP Broadcast/Multicast

View File

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

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,6 +1,9 @@
/*! \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
PIIODevice wrapper around PIByteArray PIIODevice wrapper around PIByteArray

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,6 +1,9 @@
/*! \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
Abstract input/output device Abstract input/output device

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,6 +1,9 @@
/*! \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
PIIODevice wrapper around PIString PIIODevice wrapper around PIString

View File

@@ -1,6 +1,9 @@
/*! \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
Peer - named I/O ethernet node, forming self-organized peering network Peer - named I/O ethernet node, forming self-organized peering network

View File

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

View File

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

View File

@@ -1,6 +1,9 @@
/*! \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
SPI SPI

View File

@@ -1,6 +1,9 @@
/*! \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
PIIODevice that pass write to read PIIODevice that pass write to read

View File

@@ -1,6 +1,9 @@
/*! \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
USB, based on libusb USB, based on libusb
@@ -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,6 +1,9 @@
/*! \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
Base class for reliable send and receive data in fixed packets with error correction, pause and resume Base class for reliable send and receive data in fixed packets with error correction, pause and resume

View File

@@ -1,6 +1,9 @@
/*! \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
Broadcast for all interfaces, including loopback Broadcast for all interfaces, including loopback

View File

@@ -1,6 +1,10 @@
/*! \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
Complex I/O point Complex I/O point

View File

@@ -1,6 +1,9 @@
/*! \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
Class for send and receive PIByteArray via PIBaseTransfer Class for send and receive PIByteArray via PIBaseTransfer

View File

@@ -1,6 +1,9 @@
/*! \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
Speed and quality in/out diagnostics Speed and quality in/out diagnostics

View File

@@ -1,6 +1,9 @@
/*! \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
Base class for ethernet utils Base class for ethernet utils

View File

@@ -1,6 +1,9 @@
/*! \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
Class for send and receive files and directories via PIBaseTransfer Class for send and receive files and directories via PIBaseTransfer

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,6 +1,9 @@
/*! \file pipacketextractor.h /*! \file pipacketextractor.h
* \brief Packets extractor * \ingroup IO
*/ * \~\brief
* \~english Packets extractor
* \~russian Извлекатель пакетов
*/
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives
Packets extractor Packets extractor

View File

@@ -1,6 +1,9 @@
/*! \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
Helper class to automate structs receive Helper class to automate structs receive

View File

@@ -1,6 +1,9 @@
/*! \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
Simple packet wrap aroud any PIIODevice Simple packet wrap aroud any PIIODevice

View File

@@ -1,6 +1,9 @@
/*! \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
PILuaProgram PILuaProgram

View File

@@ -1,8 +1,9 @@
/*! \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
PIP Lua bindings PIP Lua bindings
@@ -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,6 +1,9 @@
/*! \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
CRC checksum calculator CRC checksum calculator

View File

@@ -1,6 +1,9 @@
/*! \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
Evaluator designed for stream calculations Evaluator designed for stream calculations

View File

@@ -1,6 +1,10 @@
/*! \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
Class for FFT, IFFT and Hilbert transformations Class for FFT, IFFT and Hilbert transformations
@@ -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,6 +1,9 @@
/*! \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
PIP math complex PIP math complex

View File

@@ -1,8 +1,9 @@
/*! \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
PIMathMatrix PIMathMatrix

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,6 +1,9 @@
/*! \file pimathvector.h /*! \file pimathvector.h
* \brief PIMathVector * \ingroup Math
*/ * \~\brief
* \~english Math vector
* \~russian Математический вектор
*/
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives
PIMathVector PIMathVector

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,6 +1,9 @@
/*! \file piquaternion.h /*! \file piquaternion.h
* \brief Class for quaternions * \ingroup Math
*/ * \~\brief
* \~english Quaternion
* \~russian Кватернион
*/
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives
Class for quaternions Class for quaternions

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,6 +1,9 @@
/*! \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
Class for calculacing math statistic in values array Class for calculacing math statistic in values array

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,6 +1,9 @@
/*! \file piresources.h /*! \file piresources.h
* \brief Resources subsystem * \ingroup Resources
*/ * \~\brief
* \~english Resources subsystem
* \~russian Подсистема ресурсов
*/
/* /*
PIP - Platform Independent Primitives PIP - Platform Independent Primitives
Resources subsystem Resources subsystem
@@ -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,6 +1,9 @@
/*! \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
Dynamic library Dynamic library

View File

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

View File

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

View File

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

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,6 +1,9 @@
/*! \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
Abstract class for create grabbers Abstract class for create grabbers

View File

@@ -1,6 +1,9 @@
/*! \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
PIMutex, PIMutexLocker PIMutex, PIMutexLocker

View File

@@ -1,6 +1,9 @@
/*! \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
Class for create multihread pipeline Class for create multihread pipeline

View File

@@ -1,6 +1,9 @@
/*! \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
PISpinlock PISpinlock

View File

@@ -1,8 +1,9 @@
/*! \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
Thread Thread

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,6 +1,9 @@
/*! \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
Class for simply notify and wait in different threads Class for simply notify and wait in different threads

View File

@@ -1,8 +1,9 @@
/*! \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
Thread pool loop Thread pool loop

View File

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