TL_MessageDispatcher::~TL_MessageDispatcher() { try { _p->_queueProtect.destroy(); } catch (std::exception &e) { TL_ExceptionComply eC(e); throw TL_Exception<TL_MessageDispatcher>("TL_MessageDispatcher::~TL_MessageDispatcher", _TLS( eC.who() << "->" << eC.what() ) ); } }
void TL_EventBuffer::destroy() { if(_p->_initialized) { try { _p->_eventListProtect.destroy(); } catch (std::exception &e) { TL_ExceptionComply eC(e); throw TL_Exception<TL_EventBuffer>("TL_EventBuffer::destroy", _TLS( eC.who() << "->" << eC.what() ) ); } _p->_initialized = false; } }
void TL_Central::start() { // TO DO - take info from configuration // create the pool server TL_EPollServer server(100, 1000); TL_SocketEventManager eventManager(1); TL_EventBuffer::Instance().setBufferSize(1000); try { // start event manager before server to be ready to accept events eventManager.start(); server.listen("*", "3333", TL_EventBuffer::addEvents, TL_EventBuffer::addNewConnections); server.start(); TL_SignalManager::Instance().addSignalReceiver(this, SIGHUP); // loop waiting for signals for(;;) { TL_Timespec theWait(TL_Timespec::NOW); theWait.add(1, 0); // 1 sec TL_SignalManager::Instance().process(theWait); } } catch (std::exception& e) { TL_ExceptionComply eC(e); LOG(this, "TL_Central::start" , TL_Log::NORMAL, eC.what() << " " << eC.who() ); } TL_Timespec theWait(TL_Timespec::NOW); theWait.add(10,0); TL_ThreadManager::Instance().cancelAllThreads(theWait); server.destroy(); eventManager.destroy(); }
int main() { EconomicEngine eE1; EconomicEngine eE2; EconomicEngine eE3; XtremeEngine xE1; EconomicCar eC(eE1); MediumCar mC(eE2); TopCar tC(eE3, xE1); eC.drive(); eC.stop(); mC.changeEngine(eE3); tC.drive(); tC.stop(); }
void TL_SocketEventManager::destroy() { if(_p->_initialized) { try { _p->_mapProtect.destroy(); _p->destroyThreads(); } catch (std::exception &e) { TL_ExceptionComply eC(e); throw TL_Exception<TL_SocketEventManager>("TL_SocketEventManager::destroy", _TLS( eC.who() << "->" << eC.what() ) ); } } _p->_initialized = false; }