summaryrefslogtreecommitdiff
path: root/TAO/tests/OBV/Indirection/MessengerServer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tests/OBV/Indirection/MessengerServer.cpp')
-rw-r--r--TAO/tests/OBV/Indirection/MessengerServer.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/TAO/tests/OBV/Indirection/MessengerServer.cpp b/TAO/tests/OBV/Indirection/MessengerServer.cpp
new file mode 100644
index 00000000000..8f271054949
--- /dev/null
+++ b/TAO/tests/OBV/Indirection/MessengerServer.cpp
@@ -0,0 +1,49 @@
+// $Id$
+
+#include "Messenger_i.h"
+#include "Factory.h"
+
+#include <iostream>
+#include <fstream>
+#include <fstream>
+
+const char* server_ior_file = "server.ior";
+
+
+void write_ior(const char* ior) {
+ std::ofstream out(server_ior_file);
+ out << ior;
+}
+
+int ACE_TMAIN (int ac, ACE_TCHAR* av[]) {
+
+ CORBA::ORB_var orb = CORBA::ORB_init(ac, av);
+
+ NodeFactory::register_new_factory(* orb.in());
+ BoxedValueFactory::register_new_factory(* orb.in());
+ BaseValueFactory::register_new_factory(* orb.in());
+ TValueFactory::register_new_factory(* orb.in());
+
+ CORBA::Object_var obj = orb->resolve_initial_references("RootPOA");
+ PortableServer::POA_var poa = PortableServer::POA::_narrow(obj.in());
+
+ PortableServer::POAManager_var poaman = poa->the_POAManager();
+
+ PortableServer::Servant_var<Messenger_i> svt = new Messenger_i;
+
+ PortableServer::ObjectId_var id = poa->activate_object(svt.in());
+ obj = poa->id_to_reference(id.in());
+ CORBA::String_var ior = orb->object_to_string(obj.in());
+ write_ior(ior.in());
+
+ std::cout << "Starting server." << std::endl;
+
+ poaman->activate();
+
+ orb->run();
+
+ poa->destroy(true, true);
+ orb->destroy();
+
+ return 0;
+}