#include #include #include // Implementation of cb::CallBack. class cb_i : public virtual POA_cb::CallBack, public virtual PortableServer::RefCountServantBase { public: inline cb_i() {} virtual ~cb_i() {} virtual void call_back(const char* mesg) { cerr << "cb_client: call_back(\"" << mesg << "\")" << endl; } }; ////////////////////////////////////////////////////////////////////// static void do_single(cb::Server_ptr server, cb::CallBack_ptr cb) { if( CORBA::is_nil(server) ) { cerr << "cb_client: The server reference is nil!" << endl; return; } cerr << "cb_client: server->one_time(call_back, \"Hello!\")" << endl; server->one_time(cb, "Hello!"); cerr << "cb_client: Returned." << endl; } static void do_register(cb::Server_ptr server, cb::CallBack_ptr cb, int period, int time_to_shutdown) { if( CORBA::is_nil(server) ) { cerr << "cb_client: The server reference is nil!" << endl; return; } cerr << "cb_client: server->register(call_back, \"Hello!\", " << period << ")" << endl; server->_cxx_register(cb, "Hello!", period); cerr << "cb_client: Returned." << endl; omni_thread::sleep(time_to_shutdown); cerr << "cb_client: Finished." << endl; } ////////////////////////////////////////////////////////////////////// int main(int argc, char** argv) { try { CORBA::ORB_var orb = CORBA::ORB_init(argc, argv, "omniORB3"); if( argc != 2 && argc != 4 ) { cerr << "usage: cb_client [" "