Commit 56368c31 authored by Pavel Vainerman's avatar Pavel Vainerman

Исправил давнюю ошибку 'disactivate' --> 'deactivate'.

Это изменение ломает все проекты собранные раньше! Т.к. это виртуальная функция, которая переопределяется в наследуемых классах, то если не переименовать, работать ничего не будет..
parent 465d626e
......@@ -8,7 +8,7 @@
Name: libuniset2
Version: 2.0
Release: alt1
Release: alt2
Summary: UniSet - library for building distributed industrial control systems
......@@ -333,6 +333,9 @@ mv -f %buildroot%python_sitelibdir_noarch/* %buildroot%python_sitelibdir/%oname
%exclude %_pkgconfigdir/libUniSet2.pc
%changelog
* Thu Feb 20 2014 Pavel Vainerman <pv@altlinux.ru> 2.0-alt2
- rename 'disactivate' --> 'deactivate'
* Wed Feb 19 2014 Pavel Vainerman <pv@altlinux.ru> 2.0-alt1
- add ModbusMultiSlave (multithreaded modbus slave server)
......
......@@ -737,9 +737,9 @@ bool MBSlave::activateObject()
return true;
}
// ------------------------------------------------------------------------------------------
bool MBSlave::disactivateObject()
bool MBSlave::deactivateObject()
{
dinfo << myname << "(disactivateObject): ..." << endl;
dinfo << myname << "(deactivateObject): ..." << endl;
activated = false;
cancelled = true;
......@@ -750,7 +750,7 @@ bool MBSlave::disactivateObject()
}
catch(...){}
return UniSetObject_LT::disactivateObject();
return UniSetObject_LT::deactivateObject();
}
// ------------------------------------------------------------------------------------------
void MBSlave::sigterm( int signo )
......
......@@ -144,7 +144,7 @@ class MBSlave:
virtual void execute_tcp();
virtual bool activateObject() override;
virtual bool disactivateObject() override;
virtual bool deactivateObject() override;
// действия при завершении работы
virtual void sigterm( int signo ) override;
......
......@@ -302,7 +302,7 @@ void MBTCPMultiSlave::initIterators()
i.second.initIterators(shm);
}
// -----------------------------------------------------------------------------
bool MBTCPMultiSlave::disactivateObject()
bool MBTCPMultiSlave::deactivateObject()
{
if( mbslot )
{
......@@ -311,7 +311,7 @@ bool MBTCPMultiSlave::disactivateObject()
sslot->sigterm(SIGTERM);
}
return MBSlave::disactivateObject();
return MBSlave::deactivateObject();
}
// -----------------------------------------------------------------------------
void MBTCPMultiSlave::sigterm( int signo )
......
......@@ -35,7 +35,7 @@ class MBTCPMultiSlave:
protected:
virtual void execute_tcp() override;
virtual void initIterators() override;
virtual bool disactivateObject() override;
virtual bool deactivateObject() override;
virtual void sigterm( int signo ) override;
timeout_t sessTimeout; /*!< таймаут на сессию */
......
......@@ -189,7 +189,7 @@ class IOController:
protected:
// переопределяем для добавления вызова регистрации датчиков
virtual bool disactivateObject() override;
virtual bool deactivateObject() override;
virtual bool activateObject() override;
/*! Начальная инициализация (выставление значений) */
......
......@@ -53,7 +53,7 @@ class ProxyManager:
virtual void allMessage( UniSetTypes::VoidMessage* msg );
virtual bool activateObject();
virtual bool disactivateObject();
virtual bool deactivateObject();
private:
typedef std::map<UniSetTypes::ObjectId, PassiveObject*> PObjectMap;
......
......@@ -21,10 +21,10 @@
* \brief Реализация интерфейса менеджера объектов.
* \author Pavel Vainerman
*/
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
#ifndef UniSetManager_H_
#define UniSetManager_H_
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
#include <omniORB4/CORBA.h>
#include "UniSetTypes.h"
#include "UniSetObject.h"
......@@ -33,27 +33,27 @@
class UniSetActivator;
class UniSetManager;
typedef std::list<UniSetManager*> UniSetManagerList;
typedef std::list<UniSetManager*> UniSetManagerList;
//---------------------------------------------------------------------------
/*! \class UniSetManager
* \par
* Содержит в себе функции управления объектами. Их регистрации и т.п.
* Создается менеджер объектов, после чего вызывается initObjects()
* для инициализации объектов которыми управляет
* Создается менеджер объектов, после чего вызывается initObjects()
* для инициализации объектов которыми управляет
* данный менеджер...
* Менеджер в свою очередь сам является объектом и обладает всеми его свойствами
*
* Для пересылки сообщения всем подчиненным объектам используется
* Менеджер в свою очередь сам является объектом и обладает всеми его свойствами
*
* Для пересылки сообщения всем подчиненным объектам используется
* функция UniSetManager::broadcast(const TransportMessage& msg)
* \par
* У базового менеджера имеются базовые три функции см. UniSetManager_i.
* \note Только при вызове функции UniSetManager::broadcast() происходит
* У базового менеджера имеются базовые три функции см. UniSetManager_i.
* \note Только при вызове функции UniSetManager::broadcast() происходит
* формирование сообщения всем подчиненным объектам... Если команда проиходит
* при помощи push, то пересылки всем починённым объектам не происходит...
*
*
*/
class UniSetManager:
*/
class UniSetManager:
public UniSetObject,
public POA_UniSetManager_i
{
......@@ -77,16 +77,16 @@ class UniSetManager:
virtual bool addManager( UniSetManager *mngr );
virtual bool removeManager( UniSetManager *mngr );
/*! Получение доступа к подчиненному менеджеру по идентификатору
* \return объект ненайден будет возвращен 0.
*/
*/
const UniSetManager* itemM(const UniSetTypes::ObjectId id);
/*! Получение доступа к подчиненному объекту по идентификатору
* \return объект ненайден будет возвращен 0.
*/
*/
const UniSetObject* itemO( const UniSetTypes::ObjectId id );
......@@ -130,17 +130,17 @@ class UniSetManager:
virtual void sigterm( int signo ) override;
//! \note Переопределяя не забывайте вызвать базовую
//! \note Переопределяя не забывайте вызвать базовую
virtual bool activateObject() override;
//! \note Переопределяя не забывайте вызвать базовую
virtual bool disactivateObject() override;
//! \note Переопределяя не забывайте вызвать базовую
virtual bool deactivateObject() override;
typedef UniSetManagerList::iterator MListIterator;
int getObjectsInfo( UniSetManager* mngr, UniSetTypes::SimpleInfoSeq* seq,
int getObjectsInfo( UniSetManager* mngr, UniSetTypes::SimpleInfoSeq* seq,
int begin, const long uplimit );
PortableServer::POA_var poa;
PortableServer::POA_var poa;
PortableServer::POAManager_var pman;
private:
......
......@@ -55,17 +55,17 @@ typedef std::list<UniSetObject *> ObjectsList; /*!< Список подчи
* Класс задает такие свойства объекта как: получение сообщений, помещение сообщения в очередь и т.п.
* Для ожидания сообщений используется функция waitMessage(), основанная на таймере.
* Ожидание прерывается либо по истечении указанного времени, либо по приходу сообщения, при помощи функциии
* termWaiting() вызываемой из push().
* termWaiting() вызываемой из push().
* \note Если не будет задан ObjectId(-1), то поток обработки запущен не будет.
* Также создание потока можно принудительно отключить при помощи функции void thread(). Ее необходимо вызвать до активации объекта
* (например в конструкторе). При этом ответственность за вызов receiveMessage() и processingMessage() возлагается
* (например в конструкторе). При этом ответственность за вызов receiveMessage() и processingMessage() возлагается
* на разработчика.
*/
class UniSetObject:
public POA_UniSetObject_i
{
public:
UniSetObject(const std::string& name, const std::string& section);
UniSetObject(const std::string& name, const std::string& section);
UniSetObject(UniSetTypes::ObjectId id);
UniSetObject();
virtual ~UniSetObject();
......@@ -112,7 +112,7 @@ class UniSetObject:
std::string section;
//! Дизактивизация объекта (переопределяется для необходимых действий перед деактивацией)
virtual bool disactivateObject(){return true;}
virtual bool deactivateObject(){return true;}
//! Активизация объекта (переопределяется для необходимых действий после активизации)
virtual bool activateObject(){return true;}
......@@ -129,11 +129,11 @@ class UniSetObject:
/*! Функция вызываемая при приходе сигнала завершения или прерывания процесса. Переопределив ее можно
* выполнять специфичные для процесса действия по обработке сигнала.
* Например переход в безопасное состояние.
* \warning В обработчике сигналов \b ЗАПРЕЩЕНО вызывать функции подобные exit(..), abort()!!!!
* \warning В обработчике сигналов \b ЗАПРЕЩЕНО вызывать функции подобные exit(..), abort()!!!!
*/
virtual void sigterm( int signo ){};
inline void terminate(){ disactivate(); }
inline void terminate(){ deactivate(); }
/*! Ожидать сообщения timeMS */
virtual bool waitMessage(UniSetTypes::VoidMessage& msg, timeout_t timeMS=UniSetTimer::WaitUpTime);
......@@ -161,10 +161,10 @@ class UniSetObject:
// функция определения приоритетного сообщения для обработки
struct PriorVMsgCompare:
struct PriorVMsgCompare:
public std::binary_function<UniSetTypes::VoidMessage, UniSetTypes::VoidMessage, bool>
{
bool operator()(const UniSetTypes::VoidMessage& lhs,
bool operator()(const UniSetTypes::VoidMessage& lhs,
const UniSetTypes::VoidMessage& rhs) const;
};
typedef std::priority_queue<UniSetTypes::VoidMessage,std::vector<UniSetTypes::VoidMessage>,PriorVMsgCompare> MessagesQueue;
......@@ -172,7 +172,7 @@ class UniSetObject:
/*! Вызывается при переполнеии очереди сообщений (в двух местах push и receive)
для очитски очереди.
\warning По умолчанию удаляет из очереди все повторяющиеся
\warning По умолчанию удаляет из очереди все повторяющиеся
- SensorMessage
- TimerMessage
- SystemMessage
......@@ -189,7 +189,7 @@ class UniSetObject:
inline void setActive( bool set ){ active = set; }
UniSetTypes::VoidMessage msg;
UniSetManager* mymngr;
UniSetManager* mymngr;
void setThreadPriority( int p );
......@@ -204,11 +204,11 @@ class UniSetObject:
}
/*! функция потока */
void work();
void work();
//! Инициализация параметров объекта
bool init(UniSetManager* om);
//! Прямая деактивизация объекта
bool disactivate();
//! Прямая деактивизация объекта
bool deactivate();
//! Непосредственная активизация объекта
bool activate();
/* регистрация в репозитории объектов */
......@@ -242,7 +242,7 @@ class UniSetObject:
/*! сколько сообщений удалять при очисте*/
unsigned int MaxCountRemoveOfMessage;
// статистическая информация
// статистическая информация
unsigned long stMaxQueueMessages; /*<! Максимальное число сообщений хранившихся в очереди */
unsigned long stCountOfQueueFull; /*! количество переполнений очереди сообщений */
};
......
......@@ -112,7 +112,7 @@ bool ProxyManager::activateObject()
return ret;
}
// -------------------------------------------------------------------------
bool ProxyManager::disactivateObject()
bool ProxyManager::deactivateObject()
{
for( PObjectMap::const_iterator it=omap.begin();it!=omap.end();++it )
{
......@@ -126,7 +126,7 @@ bool ProxyManager::disactivateObject()
}
}
return UniSetObject::disactivateObject();
return UniSetObject::deactivateObject();
}
// -------------------------------------------------------------------------
void ProxyManager::processingMessage( UniSetTypes::VoidMessage *msg )
......
......@@ -250,16 +250,16 @@ void UniSetActivator::run(bool thread)
*/
void UniSetActivator::stop()
{
// uniset_mutex_lock l(disactivateMutex, 500);
// uniset_mutex_lock l(deactivateMutex, 500);
if( active )
{
active=false;
ulogsys << myname << "(stop): disactivate... "<< endl;
ulogsys << myname << "(stop): deactivate... "<< endl;
disactivate();
deactivate();
ulogsys << myname << "(stop): disactivate ok. "<<endl;
ulogsys << myname << "(stop): deactivate ok. "<<endl;
ulogsys << myname << "(stop): discard request..."<< endl;
pman->discard_requests(true);
......
......@@ -170,7 +170,7 @@ bool UniSetManager::removeObject( UniSetObject* obj )
uinfo << myname << "(activator): удаляем объект "<< obj->getName()<< endl;
try
{
obj->disactivate();
obj->deactivate();
}
catch(Exception& ex)
{
......@@ -224,7 +224,7 @@ void UniSetManager::managers( OManagerCommand cmd )
break;
case deactiv:
li->disactivate();
li->deactivate();
break;
case term:
......@@ -284,7 +284,7 @@ void UniSetManager::objects(OManagerCommand cmd)
break;
case deactiv:
li->disactivate();
li->deactivate();
break;
case term:
......@@ -338,9 +338,9 @@ bool UniSetManager::activateObject()
* Удаление объекта и всех его подобъектов из репозитория.
* \note Объект становится недоступен другим процессам
*/
bool UniSetManager::disactivateObject()
bool UniSetManager::deactivateObject()
{
uinfo << myname << "(disactivateObjects): деактивизирую объекты"<< endl;
uinfo << myname << "(deactivateObjects): деактивизирую объекты"<< endl;
// именно в такой последовательности!
objects(deactiv);
managers(deactiv);
......
......@@ -134,7 +134,7 @@ stCountOfQueueFull(0)
// ------------------------------------------------------------------------------------------
UniSetObject::~UniSetObject()
{
disactivate();
deactivate();
tmr->terminate();
......@@ -608,13 +608,13 @@ unsigned int UniSetObject::countMessages()
}
}
// ------------------------------------------------------------------------------------------
bool UniSetObject::disactivate()
bool UniSetObject::deactivate()
{
if( !isActive() )
{
try
{
disactivateObject();
deactivateObject();
}
catch(...){}
return true;
......@@ -632,14 +632,14 @@ bool UniSetObject::disactivate()
try
{
uinfo << myname << "(disactivate): ..." << endl;
uinfo << myname << "(deactivate): ..." << endl;
PortableServer::POA_var poamngr = mymngr->getPOA();
if( !PortableServer::POA_Helper::is_nil(poamngr) )
{
try
{
disactivateObject();
deactivateObject();
}
catch(...){}
......@@ -649,27 +649,27 @@ bool UniSetObject::disactivate()
uinfo << myname << "(disacivate): finished..." << endl;
return true;
}
uwarn << myname << "(disactivate): manager already destroyed.." << endl;
uwarn << myname << "(deactivate): manager already destroyed.." << endl;
}
catch(CORBA::TRANSIENT)
{
uwarn << myname << "(disactivate): isExist: нет связи..."<< endl;
uwarn << myname << "(deactivate): isExist: нет связи..."<< endl;
}
catch( CORBA::SystemException& ex )
{
uwarn << myname << "(disactivate): " << "поймали CORBA::SystemException: " << ex.NP_minorString() << endl;
uwarn << myname << "(deactivate): " << "поймали CORBA::SystemException: " << ex.NP_minorString() << endl;
}
catch(CORBA::Exception& ex)
{
uwarn << myname << "(disactivate): " << "поймали CORBA::Exception." << endl;
uwarn << myname << "(deactivate): " << "поймали CORBA::Exception." << endl;
}
catch(Exception& ex)
{
uwarn << myname << "(disactivate): " << ex << endl;
uwarn << myname << "(deactivate): " << ex << endl;
}
catch(...)
{
uwarn << myname << "(disactivate): " << " catch ..." << endl;
uwarn << myname << "(deactivate): " << " catch ..." << endl;
}
return false;
......
......@@ -71,10 +71,10 @@ bool IOController::activateObject()
return res;
}
// ------------------------------------------------------------------------------------------
bool IOController::disactivateObject()
bool IOController::deactivateObject()
{
sensorsUnregistration();
return UniSetManager::disactivateObject();
return UniSetManager::deactivateObject();
}
// ------------------------------------------------------------------------------------------
void IOController::sensorsUnregistration()
......
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