merged AI doc, some new pages
This commit is contained in:
@@ -1,9 +1,8 @@
|
||||
/*! \file pihidevice.h
|
||||
* \ingroup System
|
||||
* \~\brief
|
||||
* \~english HID device
|
||||
* \~russian HID устройство
|
||||
*/
|
||||
//! \~\file pihidevice.h
|
||||
//! \~\ingroup System
|
||||
//! \~\brief
|
||||
//! \~english HID device
|
||||
//! \~russian HID устройство
|
||||
/*
|
||||
PIP - Platform Independent Primitives
|
||||
HID device
|
||||
@@ -29,37 +28,125 @@
|
||||
#include "pithread.h"
|
||||
|
||||
|
||||
//! \~\ingroup System
|
||||
//! \~\brief
|
||||
//! \~english Information about a discovered HID device.
|
||||
//! \~russian Информация об обнаруженном HID-устройстве.
|
||||
struct PIP_EXPORT PIHIDeviceInfo {
|
||||
friend class PIHIDevice;
|
||||
|
||||
//! \~\ingroup System
|
||||
//! \~\brief
|
||||
//! \~english Common information for HID controls addressed by index.
|
||||
//! \~russian Общая информация об HID-элементах управления, адресуемых по индексу.
|
||||
struct PIP_EXPORT ValueInfoBase {
|
||||
//! \~english Returns \b true when this control description is initialized.
|
||||
//! \~russian Возвращает \b true, если описание элемента управления инициализировано.
|
||||
bool isValid() const { return index >= 0; }
|
||||
|
||||
//! \~english Sequential index in the corresponding public vector.
|
||||
//! \~russian Порядковый индекс в соответствующем публичном векторе.
|
||||
int index = -1;
|
||||
|
||||
//! \~english Platform data index used in input reports.
|
||||
//! \~russian Платформенный индекс данных, используемый во входных отчетах.
|
||||
int data_index = -1;
|
||||
};
|
||||
|
||||
//! \~\ingroup System
|
||||
//! \~\brief
|
||||
//! \~english Description of a HID axis.
|
||||
//! \~russian Описание HID-оси.
|
||||
struct PIP_EXPORT AxisInfo: public ValueInfoBase {
|
||||
//! \~english Axis resolution in bits when the platform reports it.
|
||||
//! \~russian Разрешение оси в битах, если платформа его сообщает.
|
||||
int bits = 0;
|
||||
|
||||
//! \~english Minimal raw axis value.
|
||||
//! \~russian Минимальное сырое значение оси.
|
||||
int min = 0;
|
||||
|
||||
//! \~english Maximal raw axis value.
|
||||
//! \~russian Максимальное сырое значение оси.
|
||||
int max = 1;
|
||||
|
||||
//! \~english Marks relative axes such as wheels or deltas.
|
||||
//! \~russian Отмечает относительные оси, например колесо или дельты.
|
||||
bool is_relative = false;
|
||||
};
|
||||
|
||||
//! \~\ingroup System
|
||||
//! \~\brief
|
||||
//! \~english Description of a HID button.
|
||||
//! \~russian Описание HID-кнопки.
|
||||
struct PIP_EXPORT ButtonInfo: public ValueInfoBase {
|
||||
//! \~english Platform button code when it is available.
|
||||
//! \~russian Платформенный код кнопки, если он доступен.
|
||||
int code = 0;
|
||||
};
|
||||
|
||||
//! \~english Device path that can be passed to \a PIHIDevice::open().
|
||||
//! \~russian Путь к устройству, который можно передать в \a PIHIDevice::open().
|
||||
PIString path;
|
||||
|
||||
//! \~english Manufacturer name.
|
||||
//! \~russian Имя производителя.
|
||||
PIString manufacturer;
|
||||
|
||||
//! \~english Product name.
|
||||
//! \~russian Имя продукта.
|
||||
PIString product;
|
||||
|
||||
//! \~english Device serial number when available.
|
||||
//! \~russian Серийный номер устройства, если доступен.
|
||||
PIString serial;
|
||||
|
||||
//! \~english Device version string.
|
||||
//! \~russian Строка версии устройства.
|
||||
PIString version;
|
||||
|
||||
//! \~english USB vendor identifier.
|
||||
//! \~russian Идентификатор производителя USB.
|
||||
PIString VID;
|
||||
|
||||
//! \~english USB product identifier.
|
||||
//! \~russian Идентификатор продукта USB.
|
||||
PIString PID;
|
||||
|
||||
//! \~english All discovered axes in report order.
|
||||
//! \~russian Все обнаруженные оси в порядке отчетов.
|
||||
PIVector<AxisInfo> axes;
|
||||
|
||||
//! \~english All discovered buttons.
|
||||
//! \~russian Все обнаруженные кнопки.
|
||||
PIVector<ButtonInfo> buttons;
|
||||
|
||||
//! \~english Returns \b true when this descriptor does not point to a device.
|
||||
//! \~russian Возвращает \b true, если этот дескриптор не указывает на устройство.
|
||||
bool isNull() const { return path.isEmpty(); }
|
||||
|
||||
//! \~english Returns \b true when this descriptor points to a device.
|
||||
//! \~russian Возвращает \b true, если этот дескриптор указывает на устройство.
|
||||
bool isNotNull() const { return !isNull(); }
|
||||
|
||||
//! \~english Checks whether product name or path contains \a str ignoring case.
|
||||
//! \~russian Проверяет, содержит ли имя продукта или путь строку \a str без учета регистра.
|
||||
bool match(const PIString & str) const;
|
||||
|
||||
//! \~english Returns total number of discovered axes.
|
||||
//! \~russian Возвращает общее число обнаруженных осей.
|
||||
int axesCount() const { return axes.size_s(); }
|
||||
|
||||
//! \~english Returns number of absolute axes.
|
||||
//! \~russian Возвращает число абсолютных осей.
|
||||
int axesAbsoluteCount() const;
|
||||
|
||||
//! \~english Returns number of relative axes.
|
||||
//! \~russian Возвращает число относительных осей.
|
||||
int axesRelativeCount() const;
|
||||
|
||||
//! \~english Returns total number of discovered buttons.
|
||||
//! \~russian Возвращает общее число обнаруженных кнопок.
|
||||
int buttonsCount() const { return buttons.size_s(); }
|
||||
|
||||
private:
|
||||
@@ -71,40 +158,106 @@ private:
|
||||
int feature_report_size = 0;
|
||||
};
|
||||
|
||||
//! \relatesalso PIHIDeviceInfo
|
||||
//! \~english Prints short HID device information to \a PICout.
|
||||
//! \~russian Выводит краткую информацию об HID-устройстве в \a PICout.
|
||||
PIP_EXPORT PICout operator<<(PICout s, const PIHIDeviceInfo & v);
|
||||
|
||||
|
||||
//! \~\ingroup System
|
||||
//! \~\brief
|
||||
//! \~english Provides access to HID (Human Interface Device) devices such as game controllers, joysticks, and other input devices.
|
||||
//! \~russian Предоставляет доступ к HID (Human Interface Device) устройствам, таким как геймконтроллеры, джойстики и другие устройства
|
||||
//! ввода.
|
||||
class PIP_EXPORT PIHIDevice: public PIThread {
|
||||
PIOBJECT_SUBCLASS(PIHIDevice, PIThread)
|
||||
|
||||
public:
|
||||
//! \~english Stops polling and closes the device.
|
||||
//! \~russian Останавливает опрос и закрывает устройство.
|
||||
~PIHIDevice();
|
||||
|
||||
//! \~\ingroup System
|
||||
//! \~\brief
|
||||
//! \~english Input event produced by %PIHIDevice.
|
||||
//! \~russian Событие ввода, создаваемое %PIHIDevice.
|
||||
struct PIP_EXPORT Event {
|
||||
//! \~english Kind of HID event.
|
||||
//! \~russian Вид HID-события.
|
||||
enum Type {
|
||||
tNone,
|
||||
tButton,
|
||||
tAxisMove,
|
||||
tNone /** \~english Empty event \~russian Пустое событие */,
|
||||
tButton /** \~english Button state change \~russian Изменение состояния кнопки */,
|
||||
tAxisMove /** \~english Axis value change or relative axis delta \~russian Изменение значения оси или дельта относительной оси
|
||||
*/
|
||||
,
|
||||
};
|
||||
|
||||
//! \~english Event kind.
|
||||
//! \~russian Вид события.
|
||||
Type type = tNone;
|
||||
|
||||
//! \~english Axis description for axis events.
|
||||
//! \~russian Описание оси для событий оси.
|
||||
PIHIDeviceInfo::AxisInfo axis;
|
||||
|
||||
//! \~english Button description for button events.
|
||||
//! \~russian Описание кнопки для событий кнопки.
|
||||
PIHIDeviceInfo::ButtonInfo button;
|
||||
|
||||
//! \~english Normalized axis value, relative delta, or button state.
|
||||
//! \~russian Нормализованное значение оси, относительная дельта или состояние кнопки.
|
||||
float value = 0.;
|
||||
};
|
||||
|
||||
//! \~english Returns \b true when the device handle is open.
|
||||
//! \~russian Возвращает \b true, если дескриптор устройства открыт.
|
||||
bool isOpened() const;
|
||||
|
||||
//! \~english Opens the device described by \a device and stores it as current.
|
||||
//! \~russian Открывает устройство, описанное в \a device, и сохраняет его как текущее.
|
||||
bool open(const PIHIDeviceInfo & device);
|
||||
|
||||
//! \~english Reopens the device stored by the last successful \a open().
|
||||
//! \~russian Повторно открывает устройство, сохраненное последним успешным вызовом \a open().
|
||||
bool open();
|
||||
|
||||
//! \~english Stops reading and releases the current device handle.
|
||||
//! \~russian Останавливает чтение и освобождает дескриптор текущего устройства.
|
||||
void close();
|
||||
|
||||
//! \~english Starts polling the opened device for input changes.
|
||||
//! \~russian Запускает опрос открытого устройства на изменения ввода.
|
||||
void start();
|
||||
|
||||
//! \~english Stops device polling and waits for the thread to finish.
|
||||
//! \~russian Останавливает опрос устройства и ожидает завершения потока.
|
||||
void stop();
|
||||
|
||||
//! \~english Sets dead zone for absolute axes in normalized range.
|
||||
//! \~russian Устанавливает мертвую зону для абсолютных осей в нормализованном диапазоне.
|
||||
void setDeadZone(float v) { dead_zone = v; }
|
||||
|
||||
//! \~english Returns current dead zone for absolute axes.
|
||||
//! \~russian Возвращает текущую мертвую зону для абсолютных осей.
|
||||
float deadZone() const { return dead_zone; }
|
||||
|
||||
//! \events
|
||||
//! \{
|
||||
|
||||
//! \fn void event(PIHIDevice::Event e)
|
||||
//! \brief
|
||||
//! \~english Raised when a button changes state or an axis value changes.
|
||||
//! \~russian Генерируется при изменении состояния кнопки или значения оси.
|
||||
EVENT1(event, PIHIDevice::Event, e);
|
||||
|
||||
//! \}
|
||||
|
||||
//! \~english Enumerates available HID devices. When \a try_open is enabled, inaccessible devices are skipped.
|
||||
//! \~russian Перечисляет доступные HID-устройства. Если включен \a try_open, недоступные устройства пропускаются.
|
||||
static PIVector<PIHIDeviceInfo> allDevices(bool try_open = true);
|
||||
|
||||
//! \~english Returns the first device whose path or product matches \a name.
|
||||
//! \~russian Возвращает первое устройство, у которого путь или имя продукта совпадает с \a name.
|
||||
static PIHIDeviceInfo findDevice(const PIString & name);
|
||||
|
||||
private:
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
|
||||
# include "pistring.h"
|
||||
|
||||
//! \ingroup System
|
||||
//! \~\ingroup System
|
||||
//! \~\brief
|
||||
//! \~english Run-time library.
|
||||
//! \~russian Run-time библиотека.
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
/*! \file piplugin.h
|
||||
* \ingroup System
|
||||
* \~\brief
|
||||
* \~english Plugin control
|
||||
* \~russian Управление плагинами
|
||||
*/
|
||||
//! \~\ingroup System
|
||||
//! \~\file piplugin.h
|
||||
//! \~\brief
|
||||
//! \~english Plugin control
|
||||
//! \~russian Управление плагинами
|
||||
//! \~\details
|
||||
//! \~english Plugin helpers for dynamic library loading and plugin management
|
||||
//! \~russian Вспомогательные средства для загрузки динамических библиотек и управления плагинами
|
||||
/*
|
||||
PIP - Platform Independent Primitives
|
||||
Plugin helpers
|
||||
@@ -34,23 +36,28 @@
|
||||
# ifdef DOXYGEN
|
||||
|
||||
|
||||
//! \~english Declare plugin, should be used before other PIP_PLUGIN_* macros
|
||||
//! \~russian Объявляет плагин, должен быть использован перед любыми другими PIP_PLUGIN_* макросами
|
||||
//! \~\relatesalso PIPluginLoader
|
||||
//! \relatesalso PIPluginLoader
|
||||
//! \~\brief
|
||||
//! \~english Declares plugin entry points and should be used before other \c PIP_PLUGIN_* macros.
|
||||
//! \~russian Объявляет точки входа плагина и должен использоваться перед другими макросами \c PIP_PLUGIN_*.
|
||||
# define PIP_PLUGIN
|
||||
|
||||
//! \~english Set user version to check it while loading, "version" is quoted string
|
||||
//! \~russian Устанавливает пользовательскую версию для проверки во время загрузки, "version" - строка в кавычках
|
||||
//! \~\relatesalso PIPluginLoader
|
||||
//! \relatesalso PIPluginLoader
|
||||
//! \~\brief
|
||||
//! \~english Sets user version checked during loading, "version" is quoted string.
|
||||
//! \~russian Устанавливает строковую пользовательскую версию, проверяемую при загрузке, "version" - строка в кавычках.
|
||||
# define PIP_PLUGIN_SET_USER_VERSION(version)
|
||||
|
||||
//! \~english Add pointer to future merge with plugin. Type is integer
|
||||
//! \~russian Добавляет указатель для будущего слияния. Тип - целое число
|
||||
//! \~\relatesalso PIPluginLoader
|
||||
//! \relatesalso PIPluginLoader
|
||||
//! \~\brief
|
||||
//! \~english Registers a static section pointer for future merge. \a type is an integer key.
|
||||
//! \~russian Регистрирует указатель на статическую секцию для последующего слияния. \a type - целочисленный ключ.
|
||||
# define PIP_PLUGIN_ADD_STATIC_SECTION(type, ptr)
|
||||
|
||||
//! \~english Declare function to merge static sections
|
||||
//! \~russian Объявляет метод для слияния статических секций
|
||||
//! \relatesalso PIPluginLoader
|
||||
//! \~\brief
|
||||
//! \~english Declares a function that merges plugin and application static sections.
|
||||
//! \~russian Объявляет функцию для слияния статических секций плагина и приложения.
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! This is functions with 3 arguments: (int type, void * from, void * to).
|
||||
@@ -69,9 +76,10 @@
|
||||
//! \~\relatesalso PIPluginLoader
|
||||
# define PIP_PLUGIN_STATIC_SECTION_MERGE
|
||||
|
||||
//! \~english Mark method to export
|
||||
//! \~russian Пометить метод на экспорт
|
||||
//! \~\relatesalso PIPluginLoader
|
||||
//! \relatesalso PIPluginLoader
|
||||
//! \~\brief
|
||||
//! \~english Marks a plugin function for export.
|
||||
//! \~russian Помечает функцию плагина для экспорта.
|
||||
# define PIP_PLUGIN_EXPORT
|
||||
|
||||
|
||||
@@ -117,13 +125,30 @@
|
||||
# endif
|
||||
|
||||
|
||||
//! \~\ingroup System
|
||||
//! \~\brief
|
||||
//! \~english Metadata collected for one plugin or for the host application.
|
||||
//! \~russian Метаданные, собираемые для одного плагина или для основного приложения.
|
||||
class PIP_EXPORT PIPluginInfo {
|
||||
public:
|
||||
//! \~english Constructs empty plugin metadata.
|
||||
//! \~russian Создает пустые метаданные плагина.
|
||||
PIPluginInfo();
|
||||
|
||||
//! \~english Sets user version checked by \a PIPluginLoader::load().
|
||||
//! \~russian Устанавливает пользовательскую версию, проверяемую в \a PIPluginLoader::load().
|
||||
void setUserVersion(const PIString & v);
|
||||
|
||||
//! \~english Associates a static section pointer with integer \a type.
|
||||
//! \~russian Связывает указатель на статическую секцию с целочисленным типом \a type.
|
||||
void setStaticSection(int type, void * ptr);
|
||||
|
||||
//! \~english Returns configured user version string.
|
||||
//! \~russian Возвращает установленную строку пользовательской версии.
|
||||
PIString userVersion() const;
|
||||
|
||||
//! \~english Returns registered static section pointers.
|
||||
//! \~russian Возвращает зарегистрированные указатели статических секций.
|
||||
PIMap<int, void *> staticSections() const;
|
||||
|
||||
private:
|
||||
@@ -132,16 +157,38 @@ private:
|
||||
};
|
||||
|
||||
|
||||
//! \~\ingroup System
|
||||
//! \~\brief
|
||||
//! \~english Storage of plugin metadata for the application and loaded plugins.
|
||||
//! \~russian Хранилище метаданных плагинов для приложения и загруженных плагинов.
|
||||
class PIP_EXPORT PIPluginInfoStorage {
|
||||
public:
|
||||
//! \~english Creates storage and initializes application metadata entry.
|
||||
//! \~russian Создает хранилище и инициализирует запись метаданных приложения.
|
||||
PIPluginInfoStorage();
|
||||
|
||||
//! \~english Returns metadata of the current initialization scope.
|
||||
//! \~russian Возвращает метаданные текущей области инициализации.
|
||||
PIPluginInfo * currentInfo();
|
||||
|
||||
//! \~english Returns metadata associated with plugin pointer \a p.
|
||||
//! \~russian Возвращает метаданные, связанные с указателем плагина \a p.
|
||||
PIPluginInfo * pluginInfo(void * p);
|
||||
|
||||
//! \~english Returns metadata entry of the host application.
|
||||
//! \~russian Возвращает запись метаданных основного приложения.
|
||||
PIPluginInfo * applicationInfo();
|
||||
|
||||
//! \~english Enters plugin scope \a p and creates metadata entry if needed.
|
||||
//! \~russian Переходит в область плагина \a p и при необходимости создает запись метаданных.
|
||||
PIPluginInfo * enterPlugin(void * p);
|
||||
|
||||
//! \~english Removes metadata associated with plugin pointer \a p.
|
||||
//! \~russian Удаляет метаданные, связанные с указателем плагина \a p.
|
||||
void unloadPlugin(void * p);
|
||||
|
||||
//! \~english Returns process-wide singleton storage.
|
||||
//! \~russian Возвращает глобальный синглтон хранилища.
|
||||
static PIPluginInfoStorage * instance();
|
||||
|
||||
private:
|
||||
@@ -152,13 +199,21 @@ private:
|
||||
};
|
||||
|
||||
|
||||
//! \ingroup System
|
||||
//! \~\ingroup System
|
||||
//! \~\brief
|
||||
//! \~english Plugin loader.
|
||||
//! \~russian Загрузчик плагина.
|
||||
//! \details
|
||||
//! \~english Handles dynamic library loading, symbol resolution, and plugin lifecycle management
|
||||
//! \~russian Управляет загрузкой динамических библиотек, разрешением символов и жизненным циклом плагинов
|
||||
class PIP_EXPORT PIPluginLoader {
|
||||
public:
|
||||
//! \~english Signature of the exported loader version function.
|
||||
//! \~russian Сигнатура экспортируемой функции версии загрузчика.
|
||||
typedef int (*FunctionLoaderVersion)();
|
||||
|
||||
//! \~english Signature of the exported static merge function.
|
||||
//! \~russian Сигнатура экспортируемой функции слияния статических секций.
|
||||
typedef void (*FunctionStaticMerge)(int, void *, void *);
|
||||
|
||||
//! \~english Possible load plugin error
|
||||
@@ -182,8 +237,8 @@ public:
|
||||
~PIPluginLoader();
|
||||
|
||||
|
||||
//! \~english Load plugin with base filename "name"
|
||||
//! \~russian Загружает плагин с базовым именем "name"
|
||||
//! \~english Loads plugin by base filename \a name and updates error state on failure.
|
||||
//! \~russian Загружает плагин по базовому имени файла \a name и обновляет состояние ошибки при неудаче.
|
||||
bool load(const PIString & name);
|
||||
|
||||
//! \~english Unload plugin and free library
|
||||
@@ -221,8 +276,13 @@ public:
|
||||
|
||||
//! \~english Invoke plugin \a PIP_PLUGIN_STATIC_SECTION_MERGE
|
||||
//! \~russian Вызывает у плагина \a PIP_PLUGIN_STATIC_SECTION_MERGE
|
||||
//! \details
|
||||
//! \~english Calls the plugin's static section merge function to synchronize application and plugin data
|
||||
//! \~russian Вызывает функцию слияния статических секций плагина для синхронизации данных приложения и плагина
|
||||
void mergeStatic();
|
||||
|
||||
//! \~english Returns existing plugin directories for subdirectory \a name.
|
||||
//! \~russian Возвращает существующие каталоги плагинов для подкаталога \a name.
|
||||
static PIStringList pluginsDirectories(const PIString & name);
|
||||
|
||||
private:
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
# include "pithread.h"
|
||||
|
||||
//! \class PIProcess
|
||||
//! \ingroup System
|
||||
//! \~\ingroup System
|
||||
//! \~english
|
||||
//! \brief Class for managing external processes
|
||||
//! \details
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
/*! \file pisignals.h
|
||||
* \ingroup System
|
||||
* \~\brief
|
||||
* \~english System signals
|
||||
* \~russian Сигналы системы
|
||||
*/
|
||||
//! \~\file pisignals.h
|
||||
//! \~\ingroup System
|
||||
//! \~\brief
|
||||
//! \~english System signals
|
||||
//! \~russian Сигналы системы
|
||||
/*
|
||||
PIP - Platform Independent Primitives
|
||||
Signals
|
||||
@@ -30,36 +29,57 @@
|
||||
|
||||
#include <functional>
|
||||
|
||||
//! \~\ingroup System
|
||||
//! \~\brief
|
||||
//! \~english Helper for installing process signal handlers.
|
||||
//! \~russian Вспомогательный класс для установки обработчиков сигналов процесса.
|
||||
class PIP_EXPORT PISignals {
|
||||
public:
|
||||
//! \~english Supported process signals.
|
||||
//! \~russian Поддерживаемые сигналы процесса.
|
||||
enum Signal {
|
||||
Interrupt /** Interrupt from keyboard */ = 0x01, // Term Interrupt from keyboard
|
||||
Illegal /** Illegal Instruction */ = 0x02, // Core Illegal Instruction
|
||||
Abort /** Abort signal */ = 0x04, // Core Abort signal from abort
|
||||
FPE /** Floating point exception */ = 0x08, // Core Floating point exception
|
||||
SegFault /** Invalid memory reference */ = 0x10, // Core Invalid memory reference
|
||||
Termination /** Termination signal */ = 0x20, // Term Termination signal
|
||||
Hangup = 0x40, // Term Hangup detected on controlling terminal or death of controlling process
|
||||
Quit = 0x80, // Core Quit from keyboard
|
||||
Kill = 0x100, // Term Kill signal
|
||||
BrokenPipe = 0x200, // Term Broken pipe: write to pipe with no readers
|
||||
Timer = 0x400, // Term Timer signal from alarm
|
||||
UserDefined1 = 0x800, // Term User-defined signal 1
|
||||
UserDefined2 = 0x1000, // Term User-defined signal 2
|
||||
ChildStopped = 0x2000, // Ign Child stopped or terminated
|
||||
Continue = 0x4000, // Cont Continue if stopped
|
||||
StopProcess = 0x8000, // Stop Stop process
|
||||
StopTTY = 0x10000, // Stop Stop typed at tty
|
||||
StopTTYInput = 0x20000, // Stop tty input for background process
|
||||
StopTTYOutput = 0x40000, // Stop tty output for background process
|
||||
All = 0xFFFFF
|
||||
Interrupt = 0x01 /** \~english Interrupt from keyboard \~russian Прерывание с клавиатуры */,
|
||||
Illegal = 0x02 /** \~english Illegal instruction \~russian Недопустимая инструкция */,
|
||||
Abort = 0x04 /** \~english Abort signal \~russian Сигнал аварийного завершения */,
|
||||
FPE = 0x08 /** \~english Floating-point exception \~russian Исключение с плавающей точкой */,
|
||||
SegFault = 0x10 /** \~english Invalid memory reference \~russian Недопустимое обращение к памяти */,
|
||||
Termination = 0x20 /** \~english Termination request \~russian Запрос на завершение */,
|
||||
Hangup = 0x40 /** \~english Hangup on controlling terminal \~russian Разрыв управляющего терминала */,
|
||||
Quit = 0x80 /** \~english Quit from keyboard \~russian Завершение с клавиатуры */,
|
||||
Kill = 0x100 /** \~english Forced termination \~russian Принудительное завершение */,
|
||||
BrokenPipe = 0x200 /** \~english Write to a pipe without readers \~russian Запись в канал без читателей */,
|
||||
Timer = 0x400 /** \~english Alarm timer signal \~russian Сигнал таймера alarm */,
|
||||
UserDefined1 = 0x800 /** \~english User-defined signal 1 \~russian Пользовательский сигнал 1 */,
|
||||
UserDefined2 = 0x1000 /** \~english User-defined signal 2 \~russian Пользовательский сигнал 2 */,
|
||||
ChildStopped = 0x2000 /** \~english Child process changed state \~russian Дочерний процесс изменил состояние */,
|
||||
Continue = 0x4000 /** \~english Continue a stopped process \~russian Продолжение остановленного процесса */,
|
||||
StopProcess = 0x8000 /** \~english Stop process execution \~russian Остановить выполнение процесса */,
|
||||
StopTTY = 0x10000 /** \~english Stop from terminal \~russian Остановка с терминала */,
|
||||
StopTTYInput =
|
||||
0x20000 /** \~english Background process requested terminal input \~russian Фоновый процесс запросил ввод с терминала */,
|
||||
StopTTYOutput =
|
||||
0x40000 /** \~english Background process requested terminal output \~russian Фоновый процесс запросил вывод в терминал */,
|
||||
All = 0xFFFFF /** \~english Bit mask of all supported signals \~russian Битовая маска всех поддерживаемых сигналов */
|
||||
};
|
||||
|
||||
//! \~english Callback invoked for each grabbed signal.
|
||||
//! \~russian Обратный вызов, вызываемый для каждого перехваченного сигнала.
|
||||
typedef std::function<void(PISignals::Signal)> SignalEvent;
|
||||
// slot is any function format "void(PISignals::Signal)"
|
||||
|
||||
//! \~english Installs callback that receives grabbed signals.
|
||||
//! \~russian Устанавливает обратный вызов, получающий перехваченные сигналы.
|
||||
static void setSlot(SignalEvent slot) { ret_func = slot; }
|
||||
|
||||
//! \~english Redirects selected signals to the slot set by \a setSlot().
|
||||
//! \~russian Перенаправляет выбранные сигналы в обработчик, заданный через \a setSlot().
|
||||
static void grabSignals(PIFlags<PISignals::Signal> signals_);
|
||||
|
||||
//! \~english Restores default handlers for selected signals.
|
||||
//! \~russian Восстанавливает обработчики по умолчанию для выбранных сигналов.
|
||||
static void releaseSignals(PIFlags<PISignals::Signal> signals_);
|
||||
|
||||
//! \~english Raises the specified signal in the current process.
|
||||
//! \~russian Посылает указанный сигнал текущему процессу.
|
||||
static void raiseSignal(PISignals::Signal signal);
|
||||
|
||||
private:
|
||||
|
||||
@@ -29,16 +29,19 @@
|
||||
#include "pitime.h"
|
||||
|
||||
|
||||
//! \ingroup System
|
||||
//! \~\ingroup System
|
||||
//! \~\brief
|
||||
//! \~english Information about system.
|
||||
//! \~russian Информация о системе.
|
||||
//! \~english System information class.
|
||||
//! \~russian Класс информации о системе.
|
||||
//! \~\details
|
||||
//! \~english Provides system information such as mount points, machine key, and system details
|
||||
//! \~russian Предоставляет информацию о системе, такую как точки монтирования, уникальный ключ и детали системы
|
||||
class PIP_EXPORT PISystemInfo {
|
||||
public:
|
||||
//! \ingroup System
|
||||
//! \~\ingroup System
|
||||
//! \~\brief
|
||||
//! \~english Mount point information.
|
||||
//! \~russian Информация о точке монтирования.
|
||||
//! \~english Mount point information structure.
|
||||
//! \~russian Структура информации о точке монтирования.
|
||||
struct PIP_EXPORT MountInfo {
|
||||
//! \~english Absolute path to mount point
|
||||
//! \~russian Абсолютный путь к точке монтирования
|
||||
@@ -73,62 +76,60 @@ public:
|
||||
bool removable = false;
|
||||
};
|
||||
|
||||
//! \~english Absolute path to "ifconfig" utility
|
||||
//! \~russian Абсолютный путь к утилите "ifconfig"
|
||||
//! \~english Absolute path to "ifconfig" utility.
|
||||
//! \~russian Абсолютный путь к утилите "ifconfig".
|
||||
PIString ifconfigPath;
|
||||
|
||||
//! \~english Application execution path (\c argv[0])
|
||||
//! \~russian Путь вызова приложения (\c argv[0])
|
||||
//! \~english Application execution path (\c argv[0]).
|
||||
//! \~russian Путь вызова приложения (\c argv[0]).
|
||||
PIString execCommand;
|
||||
|
||||
//! \~english System hostname
|
||||
//! \~russian Hostname системы
|
||||
//! \~english System hostname.
|
||||
//! \~russian Hostname системы.
|
||||
PIString hostname;
|
||||
|
||||
//! \~english Username that starts application
|
||||
//! \~russian Имя пользователя, запустившего приложение
|
||||
//! \~english Username that starts application.
|
||||
//! \~russian Имя пользователя, запустившего приложение.
|
||||
PIString user;
|
||||
|
||||
//! \~english System name (Windows, MacOS, ...)
|
||||
//! \~russian Имя системы (Windows, MacOS, ...)
|
||||
//! \~english System name (Windows, MacOS, ...).
|
||||
//! \~russian Имя системы (Windows, MacOS, ...).
|
||||
PIString OS_name;
|
||||
|
||||
//! \~english System version
|
||||
//! \~russian Версия системы
|
||||
//! \~english System version.
|
||||
//! \~russian Версия системы.
|
||||
PIString OS_version;
|
||||
|
||||
//! \~english System architecture (x86, x86_64, ...)
|
||||
//! \~russian Архитектура системы (x86, x86_64, ...)
|
||||
//! \~english System architecture (x86, x86_64, ...).
|
||||
//! \~russian Архитектура системы (x86, x86_64, ...).
|
||||
PIString architecture;
|
||||
|
||||
//! \~english Application start date and time
|
||||
//! \~russian Дата и время запуска приложения
|
||||
//! \~english Application start date and time.
|
||||
//! \~russian Дата и время запуска приложения.
|
||||
PIDateTime execDateTime;
|
||||
|
||||
//! \~english System logical processors count
|
||||
//! \~russian Количество логических процессоров системы
|
||||
//! \~english System logical processors count.
|
||||
//! \~russian Количество логических процессоров системы.
|
||||
int processorsCount = 1;
|
||||
|
||||
|
||||
//! \~english Returns all mount points absolute pathes
|
||||
//! \~russian Возвращает абсолютные пути всех точек монтирования
|
||||
//! \~english Returns all mount points absolute pathes.
|
||||
//! \~russian Возвращает абсолютные пути всех точек монтирования.
|
||||
static PIStringList mountRoots();
|
||||
|
||||
//! \~english Returns information of all mount points
|
||||
//! \~russian Возвращает информацию о всех точках монтирования
|
||||
//! \~english Returns information of all mount points.
|
||||
//! \~russian Возвращает информацию о всех точках монтирования.
|
||||
static PIVector<MountInfo> mountInfo(bool ignore_cache = false);
|
||||
|
||||
//! \~english Returns system unique key
|
||||
//! \~russian Возвращает уникальный ключ системы
|
||||
//! \~english Returns system unique key.
|
||||
//! \~russian Возвращает уникальный ключ системы.
|
||||
static PIString machineKey();
|
||||
|
||||
//! \~english Returns system unique key hash
|
||||
//! \~russian Возвращает хэш уникального ключа системы
|
||||
//! \~english Returns system unique key hash.
|
||||
//! \~russian Возвращает хэш уникального ключа системы.
|
||||
static uint machineID();
|
||||
|
||||
|
||||
//! \~english Returns singleton of %PISystemInfo
|
||||
//! \~russian Возвращает синглтон %PISystemInfo
|
||||
//! \~english Returns singleton of %PISystemInfo.
|
||||
//! \~russian Возвращает синглтон %PISystemInfo.
|
||||
static PISystemInfo * instance();
|
||||
|
||||
private:
|
||||
@@ -138,8 +139,8 @@ private:
|
||||
|
||||
|
||||
//! \relatesalso PICout
|
||||
//! \~english Output operator to \a PICout
|
||||
//! \~russian Оператор вывода в \a PICout
|
||||
//! \~english Output operator to \a PICout.
|
||||
//! \~russian Оператор вывода в \a PICout.
|
||||
inline PICout operator<<(PICout s, const PISystemInfo::MountInfo & v) {
|
||||
s.saveAndSetControls(0);
|
||||
s << "MountInfo(" << v.device << " mounted on \"" << v.mount_point << "\", type " << v.filesystem << ", label \"" << v.label
|
||||
|
||||
@@ -1,3 +1,13 @@
|
||||
/*! \file pisystemmodule.h
|
||||
* \ingroup System
|
||||
* \~\brief
|
||||
* \~english Umbrella header for the system module
|
||||
* \~russian Зонтичный заголовок системного модуля
|
||||
*
|
||||
* \~\details
|
||||
* \~english Includes the main public APIs for system information, processes, plugins, signals, and HID devices.
|
||||
* \~russian Подключает основные публичные API для информации о системе, процессов, плагинов, сигналов и HID-устройств.
|
||||
*/
|
||||
/*
|
||||
PIP - Platform Independent Primitives
|
||||
Module includes
|
||||
@@ -34,12 +44,12 @@
|
||||
//! \~russian \par Общее
|
||||
//!
|
||||
//! \~english
|
||||
//! These files provides system information, resource monitoring, run-time libraries and
|
||||
//! control of external executables.
|
||||
//! These files provide system information, resource monitoring, run-time libraries,
|
||||
//! external processes, plugins, HID devices, and signal handling.
|
||||
//!
|
||||
//! \~russian
|
||||
//! Эти файлы обеспечивают информацию о системе, мониторинг ресурсов, run-time библиотеки
|
||||
//! и управление внешними исполняемыми файлами.
|
||||
//! Эти файлы предоставляют информацию о системе, мониторинг ресурсов, run-time библиотеки,
|
||||
//! внешние процессы, плагины, HID-устройства и обработку сигналов.
|
||||
//!
|
||||
//! \~\authors
|
||||
//! \~english
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
//! \~\file pisystemtests.h
|
||||
//! \~\ingroup System
|
||||
//! \~\brief
|
||||
//! \~english System timing calibration values
|
||||
//! \~russian Калибровочные значения системного времени
|
||||
/*
|
||||
PIP - Platform Independent Primitives
|
||||
System tests results (see system_test folder)
|
||||
@@ -22,17 +27,43 @@
|
||||
|
||||
#include "pibase.h"
|
||||
|
||||
//! \~\ingroup System
|
||||
//! \~\brief
|
||||
//! \~english Calibration values loaded from system test results.
|
||||
//! \~russian Калибровочные значения, загружаемые из результатов системных тестов.
|
||||
namespace PISystemTests {
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Measured timer resolution in nanoseconds.
|
||||
//! \~russian Измеренное разрешение таймера в наносекундах.
|
||||
extern PIP_EXPORT long time_resolution_ns;
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Measured elapsed-time correction in nanoseconds.
|
||||
//! \~russian Поправка измеренного времени в наносекундах.
|
||||
extern PIP_EXPORT long time_elapsed_ns;
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Delay correction for \a usleep() in microseconds.
|
||||
//! \~russian Поправка задержки для \a usleep() в микросекундах.
|
||||
extern PIP_EXPORT long usleep_offset_us;
|
||||
|
||||
//! \~\ingroup System
|
||||
//! \~\brief
|
||||
//! \~english Initializes calibration values for %PISystemTests.
|
||||
//! \~russian Инициализирует калибровочные значения для %PISystemTests.
|
||||
class PIP_EXPORT PISystemTestReader {
|
||||
public:
|
||||
//! \~english Reads calibration values from the system configuration when available.
|
||||
//! \~russian Считывает калибровочные значения из системной конфигурации, если она доступна.
|
||||
PISystemTestReader();
|
||||
};
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Global reader that initializes calibration values during startup.
|
||||
//! \~russian Глобальный объект, инициализирующий калибровочные значения при старте.
|
||||
extern PIP_EXPORT PISystemTestReader pisystestreader;
|
||||
|
||||
} // namespace PISystemTests
|
||||
|
||||
#endif // PISYSTEMTESTS_H
|
||||
|
||||
Reference in New Issue
Block a user