summaryrefslogtreecommitdiff
path: root/trunk/TAO/examples/Advanced/ch_3/server.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/TAO/examples/Advanced/ch_3/server.cpp')
-rw-r--r--trunk/TAO/examples/Advanced/ch_3/server.cpp93
1 files changed, 93 insertions, 0 deletions
diff --git a/trunk/TAO/examples/Advanced/ch_3/server.cpp b/trunk/TAO/examples/Advanced/ch_3/server.cpp
new file mode 100644
index 00000000000..fb8fbd74601
--- /dev/null
+++ b/trunk/TAO/examples/Advanced/ch_3/server.cpp
@@ -0,0 +1,93 @@
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO/examples/Advanced/ch_3
+//
+// = FILENAME
+// server.cpp
+//
+// = AUTHORS
+// Source code used in TAO has been modified and adapted from the
+// code provided in the book, "Advanced CORBA Programming with C++"
+// by Michi Henning and Steve Vinoski. Copyright
+// 1999. Addison-Wesley, Reading, MA. Used with permission of
+// Addison-Wesley.
+//
+// Modified for TAO by Mike Moran <mm4@cs.wustl.edu>
+//
+// ============================================================================
+
+#include "server.h"
+#include <ace/streams.h>
+
+// The following headers are #included automatically by ACE+TAO.
+// Therefore, they don't need to be included explicitly.
+//#include <time.h>
+//#include <iostream.h>
+
+TimeOfDay
+Time_impl::
+get_gmt (void) throw (CORBA::SystemException)
+{
+ time_t time_now = time (0);
+ struct tm *time_p = gmtime (&time_now);
+
+ TimeOfDay tod;
+ tod.hour = time_p->tm_hour;
+ tod.minute = time_p->tm_min;
+ tod.second = time_p->tm_sec;
+
+ return tod;
+}
+
+// $Id$
+// Changelog for Henning and Vinoski's chapter 18 example
+// ______________________________________________________
+
+int
+main (int argc, char *argv[])
+{
+ try
+ {
+ // Initialize orb
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ // Get reference to Root POA.
+ CORBA::Object_var obj
+ = orb->resolve_initial_references ("RootPOA");
+ PortableServer::POA_var poa
+ = PortableServer::POA::_narrow (obj.in ());
+
+ // Activate POA manager
+ PortableServer::POAManager_var mgr
+ = poa->the_POAManager ();
+ mgr->activate ();
+
+ // Create an object
+ Time_impl time_servant;
+
+ // Write its stringified reference to stdout
+ Time_var tm = time_servant._this ();
+ CORBA::String_var str = orb->object_to_string (tm.in ());
+ cout << str.in () << endl;
+
+ // Accept requests
+ orb->run ();
+ }
+ catch (const CORBA::Exception &)
+ {
+ cerr << "Uncaught CORBA exception" << endl;
+ return 1;
+ }
+ return 0;
+}
+
+
+
+
+
+
+
+