Commit 9f61b75d authored by Vitaly Lipatov's avatar Vitaly Lipatov Committed by Pavel Vainerman

fix spell errors (manually)

parent f319fda7
UniSet [![Build Status](https://travis-ci.org/Etersoft/uniset2.svg?branch=master)](https://travis-ci.org/Etersoft/uniset2) [![Coverity Scan Build Status](https://scan.coverity.com/projects/etersoft-uniset2/badge.svg)](https://scan.coverity.com/projects/etersoft-uniset2)
======
UniSet is a library for distributed control systems.
UniSet is a library for distributed control systems development.
There are set of base components to construct this kind of systems:
* base interfaces for your implementation of control algorithms.
* algorithms for the discrete and analog input/output based on COMEDI interface.
* algorithms for a discrete and analog input/output based on COMEDI interface.
* IPC mechanism based on CORBA (omniORB).
* logging system based on MySQL, SQLite, PostgreeSQL databases.
* logging system based on MySQL, SQLite, PostgreSQL databases.
* Web interface to display logging and statistic information.
* utilities for system's configuration based on XML.
* python interface
......@@ -14,7 +14,7 @@ There are set of base components to construct this kind of systems:
UniSet have been written in C++ and IDL languages but you can use another languages in your
add-on components. The main principle of the UniSet library's design is a maximum integration
with open source third-party libraries. UniSet provide the consistent interface for all
with open source third-party libraries. UniSet provides the consistent interface for all
add-on components and third-party libraries. Python wrapper helps in using the library
in python scripts.
......
......@@ -17,7 +17,7 @@
- uniset-codegen: добавить ключ --gen-sensor-name для генерирования name_Item.. (чтобы можно было в логах использовать текстовые названия)
- uniset-codegen: перенести инициализацию полей в header (c++11) и "разгрузить конструкторы"
- unetudp: добавить возможость привязать номера текущего посылаемого и принимаемого пакетов к датчику
- unetudp: добавить возможность привязать номера текущего посылаемого и принимаемого пакетов к датчику
- встроить различные сигналы (sigc).. в ModbusExchange и другие классы..
- ModbusMaster: встроить возможность задать 'pulsar' (регистр сердцебиения)
......@@ -116,4 +116,4 @@ UResolver (или ObjectRepository) позволяющего манипулир
- resolve(name,node) // обращение к IResolver удалённого узла..
- create(rootname)
- Перепроектировать OIndex и Configure.. Инициализироват для Configure(объектом OIndex)
- Перепроектировать OIndex и Configure.. Инициализировать для Configure(объектом OIndex)
......@@ -83,10 +83,10 @@ namespace uniset
По умолчанию в качестве имени берётся name, но при необходимости можно указать определиться специальное имя.
Для этого достаточно задать поле tsdb_name="...".
\section sec_OpenTSDB_Queue Буффер на запись в БД
В данной реализации встроен специальный буффер, который накапливает данные и скидывает их
\section sec_OpenTSDB_Queue Буфер на запись в БД
В данной реализации встроен специальный буфер, который накапливает данные и скидывает их
пачкой в БД. Так же он является защитным механизом на случай если БД временно недоступна.
Параметры буффера задаются аргументами командной строки или в конфигурационном файле.
Параметры буфера задаются аргументами командной строки или в конфигурационном файле.
Доступны следующие параметры:
- \b bufSize - размер буфера, при заполнении которого происходит посылка данных в БД
- \b bufSyncTimeout - период сброса данных в БД
......
......@@ -88,7 +88,7 @@ namespace uniset
\section sec_LogDB_DB LogDB: Работа с БД
Для оптимизации, запись в БД сделана не по каждому сообщению, а через промежуточнй буффер.
Для оптимизации, запись в БД сделана не по каждому сообщению, а через промежуточнй буфер.
Т.е. только после того как в буфере скапливается \a qbufSize сообщений (строк) буфер скидывается в базу.
Помимо этого, встроен механизм "ротации БД". Если задан параметр maxRecords (--prefix-db-max-records),
то в БД будет поддерживаться ограниченное количество записей. При этом введён "гистерезис",
......
......@@ -48,7 +48,7 @@ namespace uniset
* Некоторые детали:
* Т.к. evprepare необходимо вызывать из потока в котором крутится event loop (иначе libev не работает),
* а функция run() в общем случае вызывается "откуда угодно" и может быть вызвана в том числе уже после
* запуска event loop, то задействован механизм асинхронного уведомления (см. evprep, onPrepapre) и ожидания
* запуска event loop, то задействован механизм асинхронного уведомления (см. evprep, onPrepare) и ожидания
* на condition_variable, когда произойдёт инициализация (см. реализацию evrun()).
*/
class CommonEventLoop
......@@ -109,7 +109,7 @@ namespace uniset
std::mutex wlist_mutex;
std::vector<EvWatcher*> wlist;
// готовящийся Watcher.н может быть только один в единицу времени
// готовящийся Watcher. Он может быть только один в единицу времени
// это гарантирует prep_mutex
EvWatcher* wprep = { nullptr };
ev::async evprep;
......
......@@ -250,7 +250,7 @@ namespace uniset
// --------------------------------------------------------------------------
} // end of uniset namespace
// --------------------------------------------------------------------------
// "синтаксический сахар"..для логов
// "синтаксический сахар" для логов
#define uinfo if( uniset::ulog()->debugging(Debug::INFO) ) uniset::ulog()->info()
#define uwarn if( uniset::ulog()->debugging(Debug::WARN) ) uniset::ulog()->warn()
#define ucrit if( uniset::ulog()->debugging(Debug::CRIT) ) uniset::ulog()->crit()
......
......@@ -40,7 +40,7 @@ namespace uniset
т.к. позволяет обходится без удалённого заказа таймеров у TimеService-а.
Но следует помнить, что при этом объект использующий такие таймеры становится более ресурсоёмким,
т.к. во время работы поток обработки сообщений не "спит", как у обычного UniSetObject-а, а тратит
время на проверку таймеров (правда при условии, что в списке есть хотябы один заказ)
время на проверку таймеров (правда при условии, что в списке есть хотя бы один заказ)
\par Основной принцип
Проверяет список таймеров и при срабатывании формирует стандартное уведомление uniset::TimerMessage,
......@@ -64,7 +64,7 @@ namespace uniset
// При реализации с использованием waitMessage() каждый раз при вызове askTimer() необходимо
// проверять возвращаемое значение на UniSetTimers::WaitUpTime и вызывать termWaiting(),
// чтобы избежать ситуации, когда процесс до заказа таймера 'спал'(в функции waitMessage()) и после
// заказа продолжит спать(т.е. обработчик вызван не будет)...
// заказа продолжит спать (т.е. обработчик вызван не будет)...
try
{
......@@ -89,7 +89,7 @@ namespace uniset
\endcode
\warning Точность работы определяется переодичностью вызова обработчика.
\warning Точность работы определяется периодичностью вызова обработчика.
\sa TimerService
\todo Подумать.. может перейти на unordered_map
......@@ -104,7 +104,7 @@ namespace uniset
/*! заказ таймера
\param timerid - идентификатор таймера
\param timeMS - период. 0 - означает отказ от таймера
\param ticks - количество уведомлений. "-1"- постоянно
\param ticks - количество уведомлений. "-1" - постоянно
\param p - приоритет присылаемого сообщения
\return Возвращает время [мсек] оставшееся до срабатывания очередного таймера
*/
......@@ -161,7 +161,7 @@ namespace uniset
/*!
* текущий такт
* \note Если задано количество -1 то сообщения будут посылатся постоянно
* \note Если задано количество -1 то сообщения будут посылаться постоянно
*/
clock_t curTick = { -1 };
......@@ -197,7 +197,7 @@ namespace uniset
private:
TimersList tlst;
/*! замок для блокирования совместного доступа к cписку таймеров */
/*! замок для блокирования совместного доступа к списку таймеров */
mutable uniset::uniset_rwmutex lstMutex;
PassiveTimer tmLast;
......
......@@ -39,11 +39,11 @@ namespace uniset
// работа с логами по умолчанию
cmdSaveLogLevel, /*!< запомнить текущее состояние логов (для восстановления при завершении сессии или команде Restore) */
cmdRestoreLogLevel, /*!< восстановить последнее запоненное (cmdSaveLogLevel) состояние логов (т.е. не восстанавливать как было, при завершении сессии) */
cmdRestoreLogLevel, /*!< восстановить последнее запомненное (cmdSaveLogLevel) состояние логов (т.е. не восстанавливать как было, при завершении сессии) */
// команды требующий ответа..
cmdList, /*!< вывести список контролируемых логов */
cmdFilterMode, /*!< включить режим работы "фильтр" - вывод только от интересующих логов, заданных в lognmae (regexp) */
cmdFilterMode, /*!< включить режим работы "фильтр" - вывод только от интересующих логов, заданных в logname (regexp) */
cmdViewDefaultLogLevel /*!< вывести уровни логов сохранённых как умолчательный (cmdSaveLogLevel) */
// cmdSetLogFile
};
......
......@@ -38,7 +38,7 @@ namespace uniset
* \warning Очередь не универсальная и предназначена исключительно для использования в UniSetObject.
* Т.к. подразумевает схему "МНОГО ПИСАТЕЛЕЙ" и "ОДИН ЧИТАТЕЛЬ".
*
* При этом место под очередь(буффер) резервируется сразу.
* При этом место под очередь (буфер) резервируется сразу.
* Счётчики сделаны (ulong) монотонно растущими.
* Основные идеи:
* - счётчики постоянно увеличиваются
......@@ -48,7 +48,7 @@ namespace uniset
*
* Максимальное ограничение на размер очереди сообщений задаётся функцией setMaxSizeOfMessageQueue().
*
* Контроль переполения очереди осуществляется в push и в top;
* Контроль переполнения очереди осуществляется в push и в top;
* Если очередь переполняется, то сообщения ТЕРЯЮТСЯ!
* При помощи функции setLostStrategy() можно установить стратегию что терять
* lostNewData - в случае переполнения теряются новые данные (т.е. не будут помещаться в очередь)
......@@ -76,7 +76,7 @@ namespace uniset
bool empty() const noexcept;
// ----- Настройки -----
// неявно подразумевается, что всё настривается до первого использования
// неявно подразумевается, что всё настраивается до первого использования
// ----------------------
void setMaxSizeOfMessageQueue( size_t s );
size_t getMaxSizeOfMessageQueue() const noexcept;
......
......@@ -33,7 +33,7 @@ namespace uniset
* Простая "многопоточная" очередь сообщений с использованием std::mutex.
* Максимальное ограничение на размер очереди сообщений задаётся функцией setMaxSizeOfMessageQueue().
*
* Контроль переполения очереди осуществляется в push
* Контроль переполнения очереди осуществляется в push
* Если очередь переполняется, то сообщения ТЕРЯЮТСЯ!
* При помощи функции setLostStrategy() можно установить стратегию что терять
* lostNewData - в случае переполнения теряются новые данные (т.е. не будут помещаться в очередь)
......
......@@ -66,7 +66,7 @@ namespace uniset
Message() noexcept;
// для оптимизации, делаем конструктор который не будет инициализировать свойства класса
// для оптимизации, делаем конструктор, который не будет инициализировать свойства класса
// это необходимо для VoidMessage, который конструируется при помощи memcpy
explicit Message( int dummy_init ) noexcept {}
......@@ -94,7 +94,7 @@ namespace uniset
VoidMessage( const VoidMessage& ) noexcept = default;
VoidMessage& operator=( const VoidMessage& ) noexcept = default;
// для оптимизации, делаем конструктор который не будет инициализировать свойства класса
// для оптимизации, делаем конструктор, который не будет инициализировать свойства класса
// это необходимо для VoidMessage, который конструируется при помощи memcpy
VoidMessage( int dummy ) noexcept : Message(dummy) {}
......@@ -255,7 +255,7 @@ namespace uniset
ObjectId sensor_id = { uniset::DefaultObjectId }; /* ID датчика (события) */
double sensor_value = { 0.0 }; /* значение датчика (события) */
struct timespec sensor_time = { 0, 0 }; /* время срабатывания датчика(события), который квитируем */
struct timespec sensor_time = { 0, 0 }; /* время срабатывания датчика (события), который квитируем */
struct timespec confirm_time = { 0, 0 }; /* * время прошедшее до момента квитирования */
bool broadcast = { false };
......
......@@ -33,7 +33,7 @@ namespace uniset
/*!
* DEPRECATED!
* \todo Проверить функции этого класса на повторную входимость
* \bug При обращении к objectsMap[0].textName срабатывает исключение(видимо какое-то из std).
* \bug При обращении к objectsMap[0].textName срабатывает исключение (видимо какое-то из std).
* Требуется дополнительное изучение.
*
* \deprecated Этот класс нужен для совместимости с очень древними проектами.
......
......@@ -31,7 +31,7 @@ namespace uniset
{
/*!
* Пасивный объект не имеющий самостоятельного потока обработки сообщений, но имеющий
* Пассивный объект, не имеющий самостоятельного потока обработки сообщений, но имеющий
* уникальный идентификатор. Предназначен для работы под управлением ProxyManager.
*
* \todo Перейти на shared_ptr, weak_ptr для взаимодействия с ProxyManager
......
......@@ -37,7 +37,7 @@ namespace uniset
typedef Poco::Timespan::TimeDiff timeout_t;
//----------------------------------------------------------------------------------------
/*! \class UniSetTimer
* \brief Базовый интерфейс пасивных таймеров
* \brief Базовый интерфейс пассивных таймеров
* \author Pavel Vainerman
*/
class UniSetTimer
......
......@@ -23,7 +23,7 @@
// --------------------------------------------------------------------------
namespace uniset
{
/*! Класс реализующий формирование импульсов заданной длительности(t1) и заданных пауз между ними(t0).
/*! Класс, реализующий формирование импульсов заданной длительности(t1) и заданных пауз между ними(t0).
Класс пассивный, для работы требует постоянного вызова функции step().
Для получения текущего состояния "выхода" использовать out().
Формирование импульсов включается функцией run() либо функцией set(true).
......
......@@ -23,7 +23,7 @@
// --------------------------------------------------------------------------
namespace uniset
{
// Шаблон для "универсальной инициализации объекта(процесса)".
// Шаблон для "универсальной инициализации объекта (процесса)".
// Использование:
// auto m = make_object<MyClass>("ObjectId","secname",...);
// --
......
......@@ -43,7 +43,7 @@ namespace uniset
/*!
* \class UInterface
* Универсальный интерфейс для взаимодействия между объектами (процессами).
* По сути является "фасадом" к реализации механизма взамиодействия
* По сути является "фасадом" к реализации механизма взаимодействия
* в libuniset (основанном на CORBA) Хотя до конца скрыть CORBA-у пока не удалось.
* Для увеличения производительности в функции встроен cache обращений...
*
......@@ -71,7 +71,7 @@ namespace uniset
void setValue ( const IOController_i::SensorInfo& si, long value, const uniset::ObjectId supplier ) const;
// fast - это удалённый вызов "без подтверждения", он быстрее, но менее надёжен
// т.к. вызывающий никогда не узнает об ошибке, если она была (датчик такой не найдён и т.п.)
// т.к. вызывающий никогда не узнает об ошибке, если она была (датчик такой не найден и т.п.)
void fastSetValue( const IOController_i::SensorInfo& si, long value, uniset::ObjectId supplier ) const;
//! Получение состояния для списка указанных датчиков
......
......@@ -42,7 +42,7 @@ namespace uniset
* Создает POA менеджер и регистрирует в нем объекты.
* Для обработки CORBA-запросов создается поток или передаются ресурсы
* главного потока см. void activate(bool thread)
* \warning Авктиватор может быть создан только один. Для его создания используйте код:
* \warning Активатор может быть создан только один. Для его создания используйте код:
\code
...
auto act = UniSetActivator::Instance()
......@@ -51,7 +51,7 @@ namespace uniset
* Активатор в свою очередь сам является менеджером(и объектом) и обладает всеми его свойствами
*
* \section act_HttpAPI REST API
* UniSetActivator выступает в роли http-сервера и релизует первчиную обработку запросов
* UniSetActivator выступает в роли http-сервера и реализует первичную обработку запросов
* и перенаправление их указанным объектам. Помимо этого UniSetActivator реализует обработку команд /conf/..
* Для запуска http-сервера необходимо в аргументах командной строки указать --activator-run-httpserver
* Помимо этого можно задать параметры --activator-httpserver-host и --activator-httpserver-port.
......
......@@ -38,7 +38,7 @@ namespace uniset
//---------------------------------------------------------------------------
/*! \class UniSetManager
* \par
* Содержит в себе функции управления объектами. Их регистрации и т.п.
* Содержит в себе функции управления объектами. их регистрации и т.п.
* Создается менеджер объектов, после чего вызывается initObjects()
* для инициализации объектов которыми управляет
* данный менеджер...
......@@ -49,8 +49,8 @@ namespace uniset
* \par
* У базового менеджера имеются базовые три функции см. UniSetManager_i.
* \note Только при вызове функции UniSetManager::broadcast() происходит
* формирование сообщения всем подчиненным объектам... Если команда проиходит
* при помощи push, то пересылки всем починённым объектам не происходит...
* формирование сообщения всем подчиненным объектам... Если команда происходит
* при помощи push, то пересылки всем подчинённым объектам не происходит...
*
*
*/
......@@ -76,7 +76,7 @@ namespace uniset
virtual bool add( const std::shared_ptr<UniSetObject>& obj );
virtual bool remove( const std::shared_ptr<UniSetObject>& obj );
// --------------------------
size_t objectsCount() const; // количество подчиненных объектов
size_t objectsCount() const; // количество подчинённых объектов
// ---------------
PortableServer::POA_ptr getPOA();
......@@ -102,15 +102,15 @@ namespace uniset
void initPOA( const std::weak_ptr<UniSetManager>& rmngr );
//! \note Переопределяя не забывайте вызвать базовую
//! \note Переопределяя, не забывайте вызвать базовую
virtual bool activateObject() override;
//! \note Переопределяя не забывайте вызвать базовую
//! \note Переопределяя, не забывайте вызвать базовую
virtual bool deactivateObject() override;
const std::shared_ptr<UniSetObject> findObject( const std::string& name ) const;
const std::shared_ptr<UniSetManager> findManager( const std::string& name ) const;
// рекурсивный поиск по всем объекам
// рекурсивный поиск по всем объектам
const std::shared_ptr<UniSetObject> deepFindObject( const std::string& name ) const;
// рекурсивное наполнение списка объектов
......@@ -124,7 +124,7 @@ namespace uniset
PortableServer::POA_var poa;
PortableServer::POAManager_var pman;
// Функции для работы со списками подчиненных объектов
// Функции для работы со списками подчинённых объектов
// ---------------
typedef std::function<void(const std::shared_ptr<UniSetObject>&)> OFunction;
void apply_for_objects( OFunction f );
......
......@@ -15,7 +15,7 @@
*/
// --------------------------------------------------------------------------
/*! \file
* \brief Реализация базового(фундаментального) класса для объектов системы
* \brief Реализация базового (фундаментального) класса для объектов системы
* (процессов управления, элементов графического интерфейса и т.п.)
* \author Pavel Vainerman
*/
......@@ -58,7 +58,7 @@ namespace uniset
* Класс реализует работу uniset-объекта: работа с очередью сообщений, регистрация объекта, инициализация и т.п.
* Обработка сообщений ведётся в специально создаваемом потоке.
* Для ожидания сообщений используется функция waitMessage(msec), основанная на таймере.
* Ожидание прерывается либо по истечении указанного времени, либо по приходу сообщения, при помощи функциии
* Ожидание прерывается либо по истечении указанного времени, либо по приходу сообщения, при помощи функции
* termWaiting() вызываемой из push().
* \note Если не будет задан ObjectId(-1), то поток обработки запущен не будет.
* Также создание потока можно принудительно отключить при помощи функции void thread(false). Ее необходимо вызвать до активации объекта
......@@ -146,7 +146,7 @@ namespace uniset
/*! прервать ожидание сообщений */
void termWaiting();
/*! текущее количесво сообщений в очереди */
/*! текущее количество сообщений в очереди */
size_t countMessages();
/*! количество потерянных сообщений */
......@@ -155,7 +155,7 @@ namespace uniset
//! Активизация объекта (переопределяется для необходимых действий после активизации)
virtual bool activateObject();
//! Деактивиция объекта (переопределяется для необходимых действий при завершении работы)
//! Деактивация объекта (переопределяется для необходимых действий при завершении работы)
virtual bool deactivateObject();
// прерывание работы всей программы (с вызовом shutdown)
......
......@@ -58,7 +58,7 @@ namespace uniset
/*! Проверка на наличие недопустимых символов
* Запрещенные символы см. uniset::BadSymbols[]
* \return Если не найдено запрещенных символов то будет возвращен 0, иначе найденный символ
* \return Если не найдено запрещённых символов то будет возвращен 0, иначе найденный символ
*/
char checkBadSymbols(const std::string& str);
......@@ -93,8 +93,8 @@ namespace uniset
typedef std::list<std::string> ListObjectName; /*!< Список объектов типа ObjectName */
typedef CORBA::Object_ptr ObjectPtr; /*!< Ссылка на объект регистрируемый в ObjectRepository */
typedef CORBA::Object_var ObjectVar; /*!< Ссылка на объект регистрируемый в ObjectRepository */
typedef CORBA::Object_ptr ObjectPtr; /*!< Ссылка на объект, регистрируемый в ObjectRepository */
typedef CORBA::Object_var ObjectVar; /*!< Ссылка на объект, регистрируемый в ObjectRepository */
UniversalIO::IOType getIOType( const std::string& s ) noexcept;
std::string iotype2str( const UniversalIO::IOType& t ) noexcept;
......@@ -137,7 +137,7 @@ namespace uniset
std::list<ObjectId> getList() const noexcept;
// за освобождение выделеной памяти
// за освобождение выделенной памяти
// отвечает вызывающий!
IDSeq* getIDSeq() const;
......
......@@ -176,7 +176,7 @@ namespace uniset
\param begin - get from position
\param buf - buffer for data
\param len - size of buf
\return real data lenght ( must be <= len )
\return real data length ( must be <= len )
*/
virtual size_t getNextData( unsigned char* buf, size_t len ) = 0;
......
......@@ -16,7 +16,7 @@
// --------------------------------------------------------------------------
/*! \file
* \author Pavel Vainerman
* \brief Всякие доп. функции расширяющие std::
* \brief Всякие доп. функции, расширяющие std::
*/
// --------------------------------------------------------------------------
#ifndef UniSetCPP_H_
......
......@@ -44,7 +44,7 @@ static const string UniSetDefaultPort = "2809";
static ostream& print_help( ostream& os, int width, const string& cmd,
const string& help, const string& tab = "" )
{
// чтобы не менчять параметры основного потока
// чтобы не менять параметры основного потока
// создаём свой stream...
ostringstream info;
info.setf(ios::left, ios::adjustfield);
......@@ -64,7 +64,7 @@ ostream& uniset::Configuration::help(ostream& os)
print_help(os, 25, "--[debname]-del-levels", "удалить уровень вывода логов\n");
print_help(os, 25, "--[debname]-show-microseconds", "Выводить время с микросекундами\n");
print_help(os, 25, "--[debname]-show-milliseconds", "Выводить время с миллисекундами\n");
print_help(os, 25, "--uniport num", "использовать заданный порт (переопеределяет 'defaultport' заданный в конф. файле в разделе <nodes>)\n");
print_help(os, 25, "--uniport num", "использовать заданный порт (переопределяет 'defaultport', заданный в конф. файле в разделе <nodes>)\n");
print_help(os, 25, "--localIOR {1,0}", "использовать локальные файлы для получения IOR (т.е. не использовать omniNames). Переопределяет параметр в конфигурационном файле.\n");
print_help(os, 25, "--transientIOR {1,0}", "использовать генерируемые IOR(не постоянные). Переопределяет параметр в конфигурационном файле. Default=1\n");
......@@ -332,7 +332,7 @@ namespace uniset
else
{
// для endPoint надо отдельно проверить доступность адреса
// иначе иницилизация omni не произойдёт, а нужно чтобы
// иначе инициализация omni не произойдёт, а нужно чтобы
// всё запускалось даже если сеть не вся "поднялась"
if( p == "endPoint" )
{
......@@ -465,7 +465,7 @@ namespace uniset
for( int k = 0; k < onum; k++ )
{
// на самом деле последний элемент = {0,0}
// но delete от 0 разрёшён и не приводит "к краху"
// но delete от 0 разрешён и не приводит "к краху"
// так что отдельно не обрабатываем этот случай.
delete[] omni_options[k][0]; // см. uni_strdup()
......@@ -1105,7 +1105,7 @@ namespace uniset
secServices = makeSecName(secRoot, getRepSectionName("services", xmlServicesSec));
}
// -------------------------------------------------------------------------
// второй параметр намеренно передаётся и переопредеяется
// второй параметр намеренно передаётся и переопределяется
// это просто такой способ вернуть и строку и указатель на узел (одним махом)
string Configuration::getRepSectionName( const string& sec, xmlNode* secnode )
{
......
......@@ -69,7 +69,7 @@ namespace uniset
void UInterface::init()
{
// пытаемся получить ссылку на NameSerivice
// пытаемся получить ссылку на NameService
// в любом случае. даже если включён режим
// localIOR
localctx = CosNaming::NamingContext::_nil();
......@@ -112,7 +112,7 @@ namespace uniset
* \param id - идентификатор датчика
* \return текущее значение датчика
* \exception IOBadParam - генерируется если указано неправильное имя датчика или секции
* \exception IOTimeOut - генерируется если в течение времени timeout небыл получен ответ
* \exception IOTimeOut - генерируется если в течение времени timeout не был получен ответ
*/
long UInterface::getValue( const uniset::ObjectId id, const uniset::ObjectId node ) const
{
......@@ -279,9 +279,9 @@ namespace uniset
// ------------------------------------------------------------------------------------------------------------
/*!
* \param id - идентификатор датчика
* \param value - значение которое необходимо установить
* \param value - значение, которое необходимо установить
* \return текущее значение датчика
* \exception IOBadParam - генерируется если указано неправильное имя вывода или секции
* \exception IOBadParam - генерируется, если указано неправильное имя вывода или секции
*/
void UInterface::setValue( const uniset::ObjectId id, long value, const uniset::ObjectId node, const uniset::ObjectId sup_id ) const
{
......@@ -383,7 +383,7 @@ namespace uniset
}
// ------------------------------------------------------------------------------------------------------------
// функция не вырабатывает исключий!
// функция не вырабатывает исключений!
void UInterface::fastSetValue( const IOController_i::SensorInfo& si, long value, uniset::ObjectId sup_id ) const
{
if ( si.id == uniset::DefaultObjectId )
......@@ -758,7 +758,7 @@ namespace uniset
// ------------------------------------------------------------------------------------------------------------
void UInterface::registered( const uniset::ObjectId id, const uniset::ObjectPtr oRef, bool force ) const
{
// если влючён режим использования локальных файлов
// если включён режим использования локальных файлов
// то пишем IOR в файл
if( uconf->isLocalIOR() )
{
......@@ -860,7 +860,7 @@ namespace uniset
catch( const uniset::ORepFailed& ex )
{
// нет связи с этим узлом
// пробуем связатся по другой сети
// пробуем связаться по другой сети
// ПО ПРАВИЛАМ узел в другой должен иметь имя NodeName1...NodeNameX
ostringstream s;
s << bname << curNet;
......
......@@ -52,7 +52,7 @@ static std::condition_variable g_doneevent;
static std::shared_ptr<std::thread> g_finish_guard_thread;
static std::atomic_bool g_done = ATOMIC_VAR_INIT(0);
static const int TERMINATE_TIMEOUT_SEC = 15; // время отведенное на завершение процесса [сек]
static const int TERMINATE_TIMEOUT_SEC = 15; // время, отведённое на завершение процесса [сек]
// ------------------------------------------------------------------------------------------
struct ORBThreadDeleter
{
......@@ -190,7 +190,7 @@ namespace uniset
}
// ------------------------------------------------------------------------------------------
/*!
* Функция останавливает работу orb и завершает поток. А так же удаляет ссылку из репозитория.
* Функция останавливает работу orb и завершает поток, а также удаляет ссылку из репозитория.
* \note Объект становится недоступен другим процессам
*/
void UniSetActivator::shutdown()
......
......@@ -435,7 +435,7 @@ void UniSetManager::objects(OManagerCommand cmd)
}
// ------------------------------------------------------------------------------------------
/*!
* Регистрирация объекта и всех его подобъектов в репозитории.
* Регистрация объекта и всех его подобъектов в репозитории.
* \note Только после этого он (и они) становятся доступны другим процессам
*/
bool UniSetManager::activateObject()
......@@ -598,7 +598,7 @@ int UniSetManager::getObjectsInfo( const std::shared_ptr<UniSetManager>& mngr, S
{
auto ind = begin;
// получаем у самого менджера
// получаем у самого менеджера
SimpleInfo_var msi = mngr->getInfo(userparam);
(*seq)[ind] = msi;
......
......@@ -96,7 +96,7 @@ namespace uniset
{
ui = make_shared<UInterface>(uniset::DefaultObjectId);
/*! \warning UniverslalInterface не инициализируется идентификатором объекта */
/*! \warning UniversalInterface не инициализируется идентификатором объекта */
tmr = CREATE_TIMER;
myname = section + "/" + name;
myid = ui->getIdByName(myname);
......@@ -140,8 +140,8 @@ namespace uniset
// ------------------------------------------------------------------------------------------
/*!
* \param om - указатель на менеджер управляющий объектом
* \return Возращает \a true если инициализация прошла успешно, и \a false если нет
* \param om - указатель на менеджер, управляющий объектом
* \return Возвращает \a true если инициализация прошла успешно, и \a false если нет
*/
bool UniSetObject::init( const std::weak_ptr<UniSetManager>& om )
{
......@@ -185,7 +185,7 @@ namespace uniset
}
// ------------------------------------------------------------------------------------------
/*!
* \param vm - указатель на структуру, которая заполняется если есть сообщение
* \param vm - указатель на структуру, которая заполняется, если есть сообщение
* \return Возвращает указатель VoidMessagePtr если сообщение есть, и shared_ptr(nullptr) если нет
*/
VoidMessagePtr UniSetObject::receiveMessage()
......@@ -255,11 +255,11 @@ namespace uniset
/*!
\warning По умолчанию объекты должны быть уникальны! Поэтому если идёт попытка повторной регистрации.
Мы чистим существующую ссылку и заменяем её на новую.
Это сделано для более надежной работы, иначе может получится, что если объект перед завершением
не очистил за собой ссылку(не разрегистрировался), то больше он никогда не сможет вновь зарегистрироваться.
Это сделано для более надёжной работы, иначе может получится, что если объект перед завершением
не очистил за собой ссылку (не разрегистрировался), то больше он никогда не сможет вновь зарегистрироваться.
Т.к. \b надёжной функции проверки "жив" ли объект пока нет...
(так бы можно было проверить и если "не жив", то смело заменять ссылку на новую). Но существует обратная сторона:
если заменяемый объект "жив" и завершит свою работу, то он может почистить за собой ссылку и это тогда наш(новый)
если заменяемый объект "жив" и завершит свою работу, то он может почистить за собой ссылку и это тогда наш (новый)
объект станет недоступен другим, а знать об этом не будет!!!
*/
uwarn << myname << "(registration): replace object (ObjectNameAlready)" << endl;
......
......@@ -179,7 +179,7 @@ uniset::ObjectId uniset::IDList::getFirst() const noexcept
return (*lst.begin());
}
// за освобождение выделеной памяти
// за освобождение выделенной памяти
// отвечает вызывающий!
IDSeq* uniset::IDList::getIDSeq() const
{
......@@ -514,7 +514,7 @@ int uniset::uni_atoi( const char* str ) noexcept
}
}
n = std::atoll(str); // универсальнее получать unsigned..чтобы не потерять "большие числа"..
n = std::atoll(str); // универсальнее получать unsigned, чтобы не потерять "большие числа"..
return n; // а возвращаем int..
}
//--------------------------------------------------------------------------------------------
......
......@@ -106,7 +106,7 @@ namespace uniset
// Копируем сперва себе список сессий..
// т.к при вызове terminate()
// у Session будет вызван сигнал "final"
// который приведёт к вызову sessionFinished()..в котором список будет меняться..
// который приведёт к вызову sessionFinished(), в котором список будет меняться..
for( const auto& s : lst )
{
try
......
......@@ -76,7 +76,7 @@ namespace uniset
if( iaddr.host().toString().empty() )
{
ostringstream err;
err << "(LogSession): unknonwn ip(0.0.0.0) client disconnected?!";
err << "(LogSession): unknown ip(0.0.0.0) client disconnected?!";
if( mylog.is_crit() )
mylog.crit() << err.str() << endl;
......@@ -496,7 +496,7 @@ namespace uniset
if( msg.cmd == LogServerTypes::cmdFilterMode )
{
// отлючаем старый обработчик
// отключаем старый обработчик
if( conn )
conn.disconnect();
}
......
......@@ -80,7 +80,7 @@ bool ObjectRepository::init() const
* Пример: registration("sens1", oRef, "Root/SensorSection");
* \param name - имя регистрируемого объекта
* \param oRef - ссылка на объект
* \param section - имя секции в которую заносится регистрационная запись
* \param section - имя секции, в которую заносится регистрационная запись
* \exception ORepFailed - генерируется если произошла ошибка при регистрации
* \sa registration(const std::string& fullName, const CORBA::Object_ptr oRef)
*/
......@@ -133,7 +133,7 @@ void ObjectRepository::registration(const string& name, const ObjectPtr oRef, co
if( !force )
throw ObjectNameAlready();
// разрегистриуем, перед повтроной попыткой
// разрегистрируем перед повторной попыткой
if( !CORBA::is_nil(ctx) )
ctx->unbind(oName);
......@@ -141,7 +141,7 @@ void ObjectRepository::registration(const string& name, const ObjectPtr oRef, co
}
catch( const ORepFailed& ex )
{
string er("ObjectRepository(registrartion): (getContext) не смог зарегистрировать " + name);
string er("ObjectRepository(registration): (getContext) не смог зарегистрировать " + name);
throw ORepFailed(er);
}
catch( const CosNaming::NamingContext::NotFound& )
......@@ -154,15 +154,15 @@ void ObjectRepository::registration(const string& name, const ObjectPtr oRef, co
}
catch( const CosNaming::NamingContext::CannotProceed& cp )
{
err << "ObjectRepository(registrartion): catch CannotProced " << name << " bad part=";
err << "ObjectRepository(registration): catch CannotProced " << name << " bad part=";
err << omniURI::nameToString(cp.rest_of_name);
}
catch( const CORBA::SystemException& ex )
{
uwarn << "ObjectRepository(registrartion): поймали CORBA::SystemException: "
uwarn << "ObjectRepository(registration): поймали CORBA::SystemException: "
<< ex.NP_minorString() << endl;
err << "ObjectRepository(registrartion): поймали CORBA::SystemException: " << ex.NP_minorString();
err << "ObjectRepository(registration): поймали CORBA::SystemException: " << ex.NP_minorString();
}
}
......@@ -174,7 +174,7 @@ void ObjectRepository::registration(const string& name, const ObjectPtr oRef, co
// --------------------------------------------------------------------------
/*!
* Функция регистрирует объект с именем "fullName" в репозитории объектов и связывает это имя со сылкой "oRef".
* Функция регистрирует объект с именем "fullName" в репозитории объектов и связывает это имя со ссылкой "oRef".
* \note При этом надо иметь ввиду, что задается полное имя объекта.
* Пример: registration("Root/SensorSection/sens1", oRef);
* \param fullName - полное имя регистрируемого объекта (т.е. включающее в себя имя секции)
......@@ -215,20 +215,20 @@ void ObjectRepository::unregistration( const string& name, const string& section
}
catch(const CosNaming::NamingContext::NotFound&)
{
err << "ObjectRepository(unregistrartion): не найден объект ->" << name;
err << "ObjectRepository(unregistration): не найден объект ->" << name;
}
catch(const CosNaming::NamingContext::InvalidName&)
{
err << "ObjectRepository(unregistrartion): не корректное имя объекта -> " << name;
err << "ObjectRepository(unregistration): не корректное имя объекта -> " << name;
}
catch(const CosNaming::NamingContext::CannotProceed& cp)
{
err << "ObjectRepository(unregistrartion): catch CannotProced " << name << " bad part=";
err << "ObjectRepository(unregistration): catch CannotProceed " << name << " bad part=";
err << omniURI::nameToString(cp.rest_of_name);
}
if (err.str().empty())
err << "ObjectRepository(unregistrartion): не смог удалить " << name;
err << "ObjectRepository(unregistration): не смог удалить " << name;
throw ORepFailed(err.str());
}
......@@ -297,9 +297,9 @@ ObjectPtr ObjectRepository::resolve( const string& name, const string& NSName )
// --------------------------------------------------------------------------
/*!
* \param ls - указатель на список который надо заполнить
* \param ls - указатель на список, который надо заполнить
* \param how_many - максимальное количество заносимых элементов
* \param section - полное имя секции начиная с Root.
* \param section - полное имя секции, начиная с Root.
* \return Функция возвращает true, если в список были внесены не все элементы. Т.е. действительное
* количество объектов в этой секции превышает заданное how_many.
* \exception ORepFailed - генерируется если произошла при получении доступа к секции
......@@ -473,7 +473,7 @@ bool ObjectRepository::createSection(const string& name, const string& in_sectio
// -------------------------------------------------------------------------------------------------------
/*!
* \param fullName - полное имя создаваемой секции
* \exception ORepFailed - генерируется если произошла при получении доступа к секции
* \exception ORepFailed - генерируется, если произошла при получении доступа к секции
*/
bool ObjectRepository::createSectionF( const string& fullName ) const
{
......@@ -584,7 +584,7 @@ void ObjectRepository::printSection( const string& fullName ) const
// -----------------------------------------------------------------------------------------------------------
/*!
* \param fullName - имя удаляемой секции
* \param recursive - удлаять рекурсивно все секции или возвращать не удалять и ошибку ( временно )
* \param recursive - удалять рекурсивно все секции или возвращать не удалять и ошибку ( временно )
* \warning Функция вынимает только первые 1000 объектов, остальные игнорируются...
*/
bool ObjectRepository::removeSection( const string& fullName, bool recursive ) const
......@@ -694,7 +694,7 @@ bool ObjectRepository::removeSection( const string& fullName, bool recursive ) c
// -----------------------------------------------------------------------------------------------------------
/*!
* \param newFName - полное имя новой секции
* \param oldFName - полное имя удаляемрй секции
* \param oldFName - полное имя удаляемой секции
*/
bool ObjectRepository::renameSection( const string& newFName, const string& oldFName ) const
{
......
......@@ -56,7 +56,7 @@ namespace uniset
// ---------------------------------------------------------------------------
bool CommonEventLoop::activateWatcher( EvWatcher* w, size_t waitTimeout_msec )
{
// готовим "указатель" на объект требующий активации
// готовим "указатель" на объект, требующий активации
std::unique_lock<std::mutex> locker(prep_mutex);
wprep = w;
......
......@@ -433,7 +433,7 @@ SimpleInfo* IONotifyController::getInfo( const char* userparam )
/*!
* \param lst - список в который необходимо внести потребителя
* \param name - имя вносимого потребителя
* \note Добавление произойдет только если такого потребителя не существует в списке
* \note Добавление произойдёт только если такого потребителя не существует в списке
*/
bool IONotifyController::addConsumer( ConsumerListInfo& lst, const ConsumerInfo& ci )
{
......@@ -481,7 +481,7 @@ bool IONotifyController::addConsumer( ConsumerListInfo& lst, const ConsumerInfo&
}
// ------------------------------------------------------------------------------------------
/*!
* \param lst - указатель на список из которго происходит удаление потребителя
* \param lst - указатель на список из которого происходит удаление потребителя
* \param name - имя удаляемого потребителя
*/
bool IONotifyController::removeConsumer( ConsumerListInfo& lst, const ConsumerInfo& cons )
......
......@@ -60,7 +60,7 @@ namespace uniset
{
t_msec = msec;
// не знаю как по другому
// TODO: не знаю как по-другому
// приходиться делать это через промежуточную переменную
std::chrono::milliseconds ms(msec);
std::swap(t_inner_msec, ms);
......
......@@ -121,7 +121,7 @@ VoidMessagePtr MQAtomic::top() noexcept
//---------------------------------------------------------------------------
size_t MQAtomic::size() const noexcept
{
// т.к. rpos корректируется только при фактическом вызое top()
// т.к. rpos корректируется только при фактическом вызове top()
// то тут приходиться смотреть если у нас переполнение
// то надо просто вернуть размер очереди
// (т.к. фактически циклический буфер никогда не переполняется)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment