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"
//! [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]
void _() {

View File

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

View File

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

View File

@@ -16,6 +16,37 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
//! \defgroup 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
#define PICLOUDMODULE_H

View File

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

View File

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

View File

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

View File

@@ -16,6 +16,37 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
//! \defgroup 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
#define PICODEMODULE_H

View File

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

View File

@@ -1,6 +1,10 @@
/*! \file picompress.h
* \brief Compress class using zlib
*/
* \brief
* \ingroup Compress
* \~\brief
* \~english Compress class zlib
* \~russian Сжатие с помощью zlib
*/
/*
PIP - Platform Independent Primitives
Compress class using zlib
@@ -19,6 +23,37 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
//! \defgroup 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
#define PICOMPRESS_H
@@ -26,8 +61,16 @@
#include "pip_compress_export.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);
//! \~english Decompress "zba", return empty %PIByteArray if no compression supports
//! \~russian Распаковывает "zba", возвращает пустой %PIByteArray если нет поддержки
//! \~\ingroup Compress
//! \~\details
PIP_COMPRESS_EXPORT PIByteArray piDecompress(const PIByteArray & zba);
#endif // PICOMPRESS_H

View File

@@ -16,6 +16,37 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
//! \defgroup 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
#define PICONSOLEMODULE_H

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -18,10 +18,22 @@
*/
//! \defgroup Containers
//! \~\brief
//! \~english This module contains various standart containers realization.
//! \~russian Модуль содержит основные классы контейнеров.
//! \~english Various standart containers realization
//! \~russian Различные классы контейнеров
//!
//! \~\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
//! ------------- | -----------
//! \a PIVector | Linear array, fast back insert
@@ -33,7 +45,7 @@
//! \a PIPair | Pair
//! \a PIVector2D | Linear 2D rectangle array
//!
//! \~russian В него входят:
//! \~russian
//! Класс | Описание
//! ------------- | -----------
//! \a PIVector | Линейный массив, быстрое добавление в конец
@@ -46,16 +58,6 @@
//! \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
//! \~russian \section stl_iterators Итераторы в стиле STL
//! \~english

View File

@@ -44,7 +44,27 @@
//!
//! \~english \section PICLI_sec1 Example
//! \~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
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/** \defgroup Core
* \~\brief
* \~english This module contains basic functionality.
* \~russian Модуль обеспечивает базовую функциональность.
*
* \~\details
* Scope | Use
* ----- | -------
* C++ | #include <picoremodule.h>
* CMake | PIP
*
* \~english
* These files provides platform abstraction, useful macros, methods and 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;
*/
//! \defgroup Core
//! \~\brief
//! \~english Basic functionality.
//! \~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 platform abstraction, useful macros, methods and 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 PICOREMODULE_H
#define PICOREMODULE_H

View File

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

View File

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

View File

@@ -16,6 +16,37 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
//! \defgroup 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
#define PICRYPTMODULE_H

View File

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

View File

@@ -16,6 +16,39 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
//! \defgroup 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
#define PIGEOMODULE_H

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -16,6 +16,38 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
//! \defgroup 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
#define PIIODEVICESMODULE_H

View File

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

View File

@@ -1,6 +1,9 @@
/*! \file pipeer.h
* \brief Peering net node
*/
* \ingroup IO
* \~\brief
* \~english Peering net node
* \~russian Элемент пиринговой сети
*/
/*
PIP - Platform Independent Primitives
Peer - named I/O ethernet node, forming self-organized peering network

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,6 +1,9 @@
/*! \file piusb.h
* \brief USB device
*/
* \ingroup USB
* \~\brief
* \~english USB device
* \~russian Устройство USB
*/
/*
PIP - Platform Independent Primitives
USB, based on libusb
@@ -19,6 +22,37 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
//! \defgroup 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
#define PIUSB_H

View File

@@ -1,6 +1,9 @@
/*! \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
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
* \brief Broadcast for all interfaces, including loopback
*/
* \ingroup IO-Utils
* \~\brief
* \~english Broadcast for all interfaces, including loopback
* \~russian Широкое вещание на все интерфейсы, включая loopback
*/
/*
PIP - Platform Independent Primitives
Broadcast for all interfaces, including loopback

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,6 +1,9 @@
/*! \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
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
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
#define PIIOUTILSMODULE_H
#include "pibasetransfer.h"
#include "piconnection.h"
#include "pidatatransfer.h"

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,8 +1,9 @@
/*! \file pip_lua.h
* \brief PIP Lua bindings
*
* This file declare conversions for PIP types via LuaBridge
*/
* \ingroup Lua
* \~\brief
* \~english Conversions between PIP types and LuaBridge
* \~russian Преобразования между типами PIP и LuaBridge
*/
/*
PIP - Platform Independent Primitives
PIP Lua bindings
@@ -21,6 +22,38 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
//! \defgroup 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
#define PIP_LUA_H

View File

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

View File

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

View File

@@ -1,6 +1,10 @@
/*! \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
Class for FFT, IFFT and Hilbert transformations
@@ -19,6 +23,37 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
//! \defgroup 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
#define PIFFT_H

View File

@@ -3,13 +3,6 @@
* \brief
* \~english Two-dimensional line class
* \~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

View File

@@ -1,15 +1,8 @@
/*! \file pimathbase.h
* \defgroup Math
* \brief
* \ingroup Math
* \~\brief
* \~english Basic mathematical functions and defines
* \~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

View File

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

View File

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

View File

@@ -16,6 +16,37 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
//! \defgroup 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
#define PIMATHMODULE_H

View File

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

View File

@@ -3,13 +3,6 @@
//! \brief
//! \~english Two-dimensional point class
//! \~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
Two-dimensional point class

View File

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

View File

@@ -3,13 +3,6 @@
//! \brief
//! \~english Rect class
//! \~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
Rect class

View File

@@ -1,6 +1,9 @@
/*! \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
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
OpenCL wrappers
@@ -16,6 +22,37 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
//! \defgroup 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
#define PIOPENCL_H

View File

@@ -1,6 +1,9 @@
/*! \file piresources.h
* \brief Resources subsystem
*/
* \ingroup Resources
* \~\brief
* \~english Resources subsystem
* \~russian Подсистема ресурсов
*/
/*
PIP - Platform Independent Primitives
Resources subsystem
@@ -19,6 +22,37 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
//! \defgroup 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
#define PIRESOURCES_H

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -16,6 +16,39 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
//! \defgroup 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
#define PISYSTEMMODULE_H

View File

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

View File

@@ -1,3 +1,9 @@
/*! \file piblockingqueue.h
* \ingroup Thread
* \~\brief
* \~english Queue with blocking
* \~russian Блокирующая очередь
*/
/*
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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -16,6 +16,37 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
//! \defgroup 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
#define PITHREADMODULE_H

View File

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

View File

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

View File

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