/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
#include "struct_simple-impl.h"
#include <iostream>
#include <fstream>
int main (int argc, char* argv[])
{
try
{
// Initialize the CORBA orb
CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
// Get the root POA
CORBA::Object_var pfobj = orb->resolve_initial_references("RootPOA");
PortableServer::POA_var rootPOA =
PortableServer::POA::_narrow(pfobj);
// Activate the root POA's manager
PortableServer::POAManager_var mgr = rootPOA->the_POAManager();
mgr->activate();
// Create a Servant and explicitly create a CORBA object
Test::TestIface_impl test_iface_servant;
CORBA::Object_var test_iface = test_iface_servant._this();
Test::OutputStream_impl stream_servant ("Instance `foo'");
CORBA::Object_var stream = stream_servant._this();
// Here we get the IOR for the Hello server object.
// Our "client" will use the IOR to find the object to connect to
CORBA::String_var test_iface_ior = orb->object_to_string (test_iface);
CORBA::String_var stream_ior = orb->object_to_string (stream);
// print out the IORs to files
std::ofstream test_iface_ior_file ("test_iface.ior");
test_iface_ior_file << test_iface_ior << std::endl;
std::ofstream stream_ior_file ("stream.ior");
stream_ior_file << stream_ior << std::endl;
// run the server event loop
orb->run();
}
catch(const CORBA::Exception& ex)
{
std::cout << "Exception caught." << std::endl;
}
}
syntax highlighted by Code2HTML, v. 0.9.1