/* * server_thread.cc * * Created on: Jun 2, 2010 * Author: lamikr */ ////////////////////////////////////////////////////////////////////// // A thread object used to server clients registered // using the plpbus_orb::OrbServer::register() method. #include "BusServer.hh" #include "ServerEventThread.hh" using namespace std; using namespace plpbus; ServerEventThread::ServerEventThread(plpbus_orb::OrbClient_ptr client, const char *msg, int period, OrbServerImpl *server_obj) { this->_orb_client = plpbus_orb::OrbClient::_duplicate(client); this->_orb_msg = msg; this->_interval = period; this->_server_obj = server_obj; _orb_client->receive_event_message("event_listener_started"); } void ServerEventThread::run(void* arg) { try { while(_server_obj->is_shutdown_pending() == 0) { omni_thread::sleep(_interval); _orb_client->receive_event_message(_orb_msg); } } catch(...) { cout << "server_thread failed, could not connect to client!" << endl; } cout << "server_thread, closing" << endl; _server_obj->server_thread_closed(); }