C++ CORBA DII issues -
could corba experts out there please me one.
i have multithreaded application code sends message server , waits response back. can see server sending response application doesnt seem receive it.
heres part of code.
// create request object given message msg.request = serverref->_request("receivecoremessagevia"); msg.request->set_return_type (corba::_tc_short); msg.request->add_in_arg() <<= msg.sourcegateway; msg.request->add_in_arg() <<= msg.octetseq; msg.request->send_deferred(); ... // following code in while loop in different function. uses request reference check response. // check if request has completed if (!msg->request->poll_response()) { clssendlog << debug << "polling..." << endl; return false; // no response yet } // returned result clssendlog << debug << "get response..." << endl; msg->request->get_response(); clssendlog << debug << "reading returned response value" << endl; corba::short tmp = 0; msg->request->return_value () >>= tmp;
the result keeps saying polling if server responds. basic dii invocation , testing code on ace/tao 5.7.9. exact code works on omniorb 4.1.4. however, want work on ace/tao.
managed fix changing object reference _ptr _var. wrote small test application verify this. after changing pointer type behaving expected serving responses. problem getting initial reference interface.
Comments
Post a Comment