summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/Naming_Service
diff options
context:
space:
mode:
authorschmidt <douglascraigschmidt@users.noreply.github.com>1999-07-31 22:18:20 +0000
committerschmidt <douglascraigschmidt@users.noreply.github.com>1999-07-31 22:18:20 +0000
commit6d4337a975f11f01dcfd9b827be431fba0280768 (patch)
treea49c98ad0d34bcb5a87c9f7fb1a256c7bf4df6dd /TAO/orbsvcs/Naming_Service
parentfaed5414aa90953190faaaacc4051b5f13d94dc1 (diff)
downloadATCD-6d4337a975f11f01dcfd9b827be431fba0280768.tar.gz
ChangeLogTag:Sat Jul 31 12:07:48 1999 Douglas C. Schmidt <schmidt@mambo.cs.wustl.edu>
Diffstat (limited to 'TAO/orbsvcs/Naming_Service')
-rw-r--r--TAO/orbsvcs/Naming_Service/NT_Naming_Server.cpp211
-rw-r--r--TAO/orbsvcs/Naming_Service/NT_Naming_Service.cpp75
-rw-r--r--TAO/orbsvcs/Naming_Service/NT_Naming_Service.dsp471
-rw-r--r--TAO/orbsvcs/Naming_Service/NT_Naming_Service.h68
-rw-r--r--TAO/orbsvcs/Naming_Service/Naming_Service.dsp920
-rw-r--r--TAO/orbsvcs/Naming_Service/Naming_Service.dsw70
-rw-r--r--TAO/orbsvcs/Naming_Service/README392
7 files changed, 1565 insertions, 642 deletions
diff --git a/TAO/orbsvcs/Naming_Service/NT_Naming_Server.cpp b/TAO/orbsvcs/Naming_Service/NT_Naming_Server.cpp
new file mode 100644
index 00000000000..b256d5153ee
--- /dev/null
+++ b/TAO/orbsvcs/Naming_Service/NT_Naming_Server.cpp
@@ -0,0 +1,211 @@
+/* -*- C++ -*- */
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// ace
+//
+// = FILENAME
+// NT_Naming_Server.cpp
+//
+//
+// = DESCRIPTION
+// Driver program that runs the TAO Naming Service as a Windows NT
+// Service.
+//
+// = AUTHORS
+// John Tucker <jtucker@infoglide.com> and
+// Mike Vitalo <mvitalo@infoglide.com>
+//
+// ============================================================================
+
+#include "ace/OS.h"
+#include "ace/Get_Opt.h"
+
+#include "winreg.h"
+#include "NT_Naming_Service.h"
+
+// Default for the -i (install) option
+#define DEFAULT_SERVICE_INIT_STARTUP SERVICE_DEMAND_START
+
+class Options
+{
+ // = TITLE
+ // Keeps track of the command-line options for this program.
+public:
+ Options (void);
+ ~Options (void);
+
+ int run (int argc, char *argv[]);
+
+private:
+ void parse_args (int argc,
+ char *argv[]);
+ void print_usage_and_die (void);
+
+private:
+ char progname[128];
+
+ int opt_install;
+ int opt_remove;
+ int opt_start;
+ int opt_kill;
+ int opt_type;
+ int opt_debug;
+
+ int opt_startup;
+};
+
+typedef ACE_Singleton<Options, ACE_Mutex> OPTIONS;
+
+Options::Options (void)
+ : opt_install (0),
+ opt_remove (0),
+ opt_start (0),
+ opt_kill (0),
+ opt_type (0),
+ opt_debug (0),
+ opt_startup (0)
+{
+ ACE_OS::strcpy (progname,
+ "service");
+ ACE::init ();
+}
+
+Options::~Options (void)
+{
+ ACE::fini ();
+}
+
+void
+Options::print_usage_and_die (void)
+{
+ ACE_DEBUG ((LM_INFO,
+ "Usage: %s"
+ " -in -r -s -k -tn -d\n"
+ " -i: Install this program as an NT service, with specified startup\n"
+ " -r: Remove this program from the Service Manager\n"
+ " -s: Start the service\n"
+ " -k: Kill the service\n"
+ " -t: Set startup for an existing service\n"
+ " -d: Debug; run as a regular application\n",
+ progname,
+ 0));
+ ACE_OS::exit (1);
+}
+
+void
+Options::parse_args (int argc, char *argv[])
+{
+ ACE_Get_Opt get_opt (argc, argv, "i:rskt:d");
+ int c;
+
+ while ((c = get_opt ()) != -1)
+ switch (c)
+ {
+ case 'i':
+ opt_install = 1;
+ opt_startup = ACE_OS::atoi (get_opt.optarg);
+ if (opt_startup <= 0)
+ print_usage_and_die ();
+ break;
+ case 'r':
+ opt_remove = 1;
+ break;
+ case 's':
+ opt_start = 1;
+ break;
+ case 'k':
+ opt_kill = 1;
+ break;
+ case 't':
+ opt_type = 1;
+ opt_startup = ACE_OS::atoi (get_opt.optarg);
+ if (opt_startup <= 0)
+ print_usage_and_die ();
+ break;
+ case 'd':
+ //opt_debug = 1;
+ break;
+ default:
+ // -i can also be given without a value - if so, it defaults
+ // to defined value.
+ if (ACE_OS::strcmp (get_opt.argv_[get_opt.optind-1], "-i") == 0)
+ {
+ opt_install = 1;
+ opt_startup = DEFAULT_SERVICE_INIT_STARTUP;
+ }
+ else
+ this->print_usage_and_die ();
+ break;
+ }
+}
+
+// Define a function to handle Ctrl+C to cleanly shut this down.
+
+static BOOL __stdcall
+ConsoleHandler (DWORD ctrlType)
+{
+ SERVICE::instance ()->handle_control (SERVICE_CONTROL_STOP);
+ return TRUE;
+}
+
+ACE_NT_SERVICE_DEFINE (service,
+ TAO_NT_Naming_Service,
+ "TAO NT Naming Service");
+
+int
+Options::run (int argc, char* argv[])
+{
+ SERVICE::instance ()->name ("TAO_NT_Naming_Service",
+ "TAO NT Naming Service");
+
+ this->parse_args (argc, argv);
+
+ if (opt_install && !opt_remove)
+ return SERVICE::instance ()->insert (opt_startup);
+
+ if (opt_remove && !opt_install)
+ return SERVICE::instance ()->remove ();
+
+ if (opt_start && opt_kill)
+ print_usage_and_die ();
+
+ if (opt_start)
+ return SERVICE::instance ()->start_svc ();
+
+ if (opt_kill)
+ return SERVICE::instance ()->stop_svc ();
+
+ if (opt_type)
+ return SERVICE::instance ()->startup (opt_startup);
+
+ // If we get here, we either run the app in debug mode (-d) or are
+ // being called from the service manager to start the service.
+
+ if (opt_debug)
+ {
+ SetConsoleCtrlHandler (&ConsoleHandler, 1);
+ SERVICE::instance ()->svc ();
+ }
+ else
+ {
+ ACE_NT_SERVICE_RUN (service,
+ SERVICE::instance (),
+ ret);
+ if (ret == 0)
+ ACE_ERROR ((LM_ERROR,
+ "%p\n",
+ "Couldn't start service"));
+ }
+
+ return 0;
+}
+
+int
+main (int argc, char *argv[])
+{
+ return OPTIONS::instance ()->run (argc, argv);
+}
+
diff --git a/TAO/orbsvcs/Naming_Service/NT_Naming_Service.cpp b/TAO/orbsvcs/Naming_Service/NT_Naming_Service.cpp
new file mode 100644
index 00000000000..ef3f0d23906
--- /dev/null
+++ b/TAO/orbsvcs/Naming_Service/NT_Naming_Service.cpp
@@ -0,0 +1,75 @@
+/* -*- C++ -*- */
+// $Id$
+
+#include /**/ "Naming_Service.h"
+#include /**/ "NT_Naming_Service.h"
+
+TAO_NT_Naming_Service::TAO_NT_Naming_Service (void)
+ : argc_(0),
+ argv_(0)
+{
+}
+
+TAO_NT_Naming_Service::~TAO_NT_Naming_Service (void)
+{
+}
+
+void
+TAO_NT_Naming_Service::handle_control (DWORD control_code)
+{
+ if (control_code == SERVICE_CONTROL_SHUTDOWN
+ || control_code == SERVICE_CONTROL_STOP)
+ {
+ report_status (SERVICE_STOP_PENDING);
+ TAO_ORB_Core_instance ()->reactor ()->end_event_loop ();
+ TAO_ORB_Core_instance ()->orb ()->shutdown (1);
+ report_status (SERVICE_STOPPED);
+ }
+ else
+ ACE_NT_Service::handle_control (control_code);
+}
+
+int
+TAO_NT_Naming_Service::handle_exception (ACE_HANDLE)
+{
+ return 0;
+}
+
+int
+TAO_NT_Naming_Service::init (int argc,
+ ASYS_TCHAR *argv[])
+{
+ argc_ = argc;
+ argv_ = argv;
+
+ return 0;
+}
+
+int
+TAO_NT_Naming_Service::svc (void)
+{
+ TAO_Naming_Service naming_service;
+
+ if (naming_service.init (argc_,
+ argv_) == -1)
+ return -1;
+
+ ACE_DECLARE_NEW_CORBA_ENV;
+ ACE_TRY
+ {
+ report_status (SERVICE_RUNNING);
+ naming_service.run (ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCHANY
+ {
+ ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
+ "TAO NT Naming Service");
+ return -1;
+ }
+ ACE_ENDTRY;
+ ACE_CHECK_RETURN (1);
+
+ return 0;
+}
+
diff --git a/TAO/orbsvcs/Naming_Service/NT_Naming_Service.dsp b/TAO/orbsvcs/Naming_Service/NT_Naming_Service.dsp
new file mode 100644
index 00000000000..43b0a4711ed
--- /dev/null
+++ b/TAO/orbsvcs/Naming_Service/NT_Naming_Service.dsp
@@ -0,0 +1,471 @@
+# Microsoft Developer Studio Project File - Name="NT_Naming_Service" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+# TARGTYPE "Win32 (ALPHA) Console Application" 0x0603
+
+CFG=NT_Naming_Service - Win32 Alpha Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "NT_Naming_Service.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "NT_Naming_Service.mak" CFG="NT_Naming_Service - Win32 Alpha Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "NT_Naming_Service - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "NT_Naming_Service - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE "NT_Naming_Service - Win32 Alpha Debug" (based on "Win32 (ALPHA) Console Application")
+!MESSAGE "NT_Naming_Service - Win32 Alpha Release" (based on "Win32 (ALPHA) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+
+!IF "$(CFG)" == "NT_Naming_Service - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+CPP=cl.exe
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I ".." /I "..\.." /I "..\..\.." /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_HAS_DLL=1 /FD /c
+# SUBTRACT CPP /YX
+RSC=rc.exe
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 orbsvcs.lib TAO.lib ace.lib user32.lib advapi32.lib /nologo /subsystem:console /machine:I386 /libpath:"..\orbsvcs" /libpath:"..\..\tao" /libpath:"..\..\..\ace"
+
+!ELSEIF "$(CFG)" == "NT_Naming_Service - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir ""
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+CPP=cl.exe
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I ".." /I "..\.." /I "..\..\.." /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_HAS_DLL=1 /FD /c
+# SUBTRACT CPP /YX
+RSC=rc.exe
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 TAOd.lib orbsvcsd.lib aced.lib user32.lib advapi32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /pdbtype:sept /libpath:"..\orbsvcs" /libpath:"..\..\tao" /libpath:"..\..\..\ace"
+
+!ELSEIF "$(CFG)" == "NT_Naming_Service - Win32 Alpha Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Naming_S"
+# PROP BASE Intermediate_Dir "Naming_S"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir ""
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+CPP=cl.exe
+# ADD BASE CPP /nologo /Gt0 /W3 /GX /Zi /Od /I ".." /I "..\.." /I "..\..\.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_HAS_DLL=1 /FD /c
+# SUBTRACT BASE CPP /YX
+# ADD CPP /nologo /Gt0 /W3 /GX /Zi /Od /I ".." /I "..\.." /I "..\..\.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_HAS_DLL=1 /FD /MDd /c
+# SUBTRACT CPP /YX
+RSC=rc.exe
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 TAOd.lib orbsvcsd.lib aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:ALPHA /pdbtype:sept /libpath:"..\orbsvcs" /libpath:"..\..\tao" /libpath:"..\..\..\ace"
+# ADD LINK32 TAOd.lib orbsvcsd.lib aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:ALPHA /pdbtype:sept /libpath:"..\orbsvcs" /libpath:"..\..\tao" /libpath:"..\..\..\ace"
+
+!ELSEIF "$(CFG)" == "NT_Naming_Service - Win32 Alpha Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Naming_0"
+# PROP BASE Intermediate_Dir "Naming_0"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+CPP=cl.exe
+# ADD BASE CPP /nologo /Gt0 /W3 /GX /O2 /I ".." /I "..\.." /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_HAS_DLL=1 /FD /c
+# SUBTRACT BASE CPP /YX
+# ADD CPP /nologo /MD /Gt0 /W3 /GX /O2 /I ".." /I "..\.." /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_HAS_DLL=1 /FD /c
+# SUBTRACT CPP /YX
+RSC=rc.exe
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 orbsvcs.lib TAO.lib ace.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /machine:ALPHA /libpath:"..\orbsvcs" /libpath:"..\..\tao" /libpath:"..\..\..\ace"
+# ADD LINK32 orbsvcs.lib TAO.lib ace.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /machine:ALPHA /libpath:"..\orbsvcs" /libpath:"..\..\tao" /libpath:"..\..\..\ace"
+
+!ENDIF
+
+# Begin Target
+
+# Name "NT_Naming_Service - Win32 Release"
+# Name "NT_Naming_Service - Win32 Debug"
+# Name "NT_Naming_Service - Win32 Alpha Debug"
+# Name "NT_Naming_Service - Win32 Alpha Release"
+# Begin Group "Source Files"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\Naming_Service.cpp
+
+!IF "$(CFG)" == "NT_Naming_Service - Win32 Release"
+
+!ELSEIF "$(CFG)" == "NT_Naming_Service - Win32 Debug"
+
+!ELSEIF "$(CFG)" == "NT_Naming_Service - Win32 Alpha Debug"
+
+!ELSEIF "$(CFG)" == "NT_Naming_Service - Win32 Alpha Release"
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\NT_Naming_Server.cpp
+
+!IF "$(CFG)" == "NT_Naming_Service - Win32 Release"
+
+!ELSEIF "$(CFG)" == "NT_Naming_Service - Win32 Debug"
+
+!ELSEIF "$(CFG)" == "NT_Naming_Service - Win32 Alpha Debug"
+
+!ELSEIF "$(CFG)" == "NT_Naming_Service - Win32 Alpha Release"
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\NT_Naming_Service.cpp
+
+!IF "$(CFG)" == "NT_Naming_Service - Win32 Release"
+
+!ELSEIF "$(CFG)" == "NT_Naming_Service - Win32 Debug"
+
+!ELSEIF "$(CFG)" == "NT_Naming_Service - Win32 Alpha Debug"
+
+DEP_CPP_NT_NA=\
+ "..\..\..\ace\Acceptor.cpp"\
+ "..\..\..\ace\Acceptor.h"\
+ "..\..\..\ace\Acceptor.i"\
+ "..\..\..\ace\ACE.h"\
+ "..\..\..\ace\ACE.i"\
+ "..\..\..\ace\Addr.h"\
+ "..\..\..\ace\Addr.i"\
+ "..\..\..\ace\Atomic_Op.i"\
+ "..\..\..\ace\Auto_Ptr.cpp"\
+ "..\..\..\ace\Auto_Ptr.h"\
+ "..\..\..\ace\Auto_Ptr.i"\
+ "..\..\..\ace\Basic_Types.h"\
+ "..\..\..\ace\Basic_Types.i"\
+ "..\..\..\ace\config-win32-borland.h"\
+ "..\..\..\ace\config-win32-common.h"\
+ "..\..\..\ace\config-win32.h"\
+ "..\..\..\ace\config-WinCE.h"\
+ "..\..\..\ace\config.h"\
+ "..\..\..\ace\Connector.cpp"\
+ "..\..\..\ace\Connector.h"\
+ "..\..\..\ace\Connector.i"\
+ "..\..\..\ace\Containers.cpp"\
+ "..\..\..\ace\Containers.h"\
+ "..\..\..\ace\Containers.i"\
+ "..\..\..\ace\Dynamic.h"\
+ "..\..\..\ace\Dynamic.i"\
+ "..\..\..\ace\Dynamic_Service.cpp"\
+ "..\..\..\ace\Dynamic_Service.h"\
+ "..\..\..\ace\Event_Handler.h"\
+ "..\..\..\ace\Event_Handler.i"\
+ "..\..\..\ace\Free_List.cpp"\
+ "..\..\..\ace\Free_List.h"\
+ "..\..\..\ace\Free_List.i"\
+ "..\..\..\ace\Get_Opt.h"\
+ "..\..\..\ace\Get_Opt.i"\
+ "..\..\..\ace\Handle_Set.h"\
+ "..\..\..\ace\Handle_Set.i"\
+ "..\..\..\ace\Hash_Map_Manager.cpp"\
+ "..\..\..\ace\Hash_Map_Manager.h"\
+ "..\..\..\ace\inc_user_config.h"\
+ "..\..\..\ace\INET_Addr.h"\
+ "..\..\..\ace\INET_Addr.i"\
+ "..\..\..\ace\IO_Cntl_Msg.h"\
+ "..\..\..\ace\iosfwd.h"\
+ "..\..\..\ace\IPC_SAP.h"\
+ "..\..\..\ace\IPC_SAP.i"\
+ "..\..\..\ace\Log_Msg.h"\
+ "..\..\..\ace\Log_Priority.h"\
+ "..\..\..\ace\Log_Record.h"\
+ "..\..\..\ace\Log_Record.i"\
+ "..\..\..\ace\Malloc.h"\
+ "..\..\..\ace\Malloc.i"\
+ "..\..\..\ace\Malloc_Base.h"\
+ "..\..\..\ace\Malloc_T.cpp"\
+ "..\..\..\ace\Malloc_T.h"\
+ "..\..\..\ace\Malloc_T.i"\
+ "..\..\..\ace\Managed_Object.cpp"\
+ "..\..\..\ace\Managed_Object.h"\
+ "..\..\..\ace\Managed_Object.i"\
+ "..\..\..\ace\Map_Manager.cpp"\
+ "..\..\..\ace\Map_Manager.h"\
+ "..\..\..\ace\Map_Manager.i"\
+ "..\..\..\ace\Mem_Map.h"\
+ "..\..\..\ace\Mem_Map.i"\
+ "..\..\..\ace\Memory_Pool.h"\
+ "..\..\..\ace\Memory_Pool.i"\
+ "..\..\..\ace\Message_Block.h"\
+ "..\..\..\ace\Message_Block.i"\
+ "..\..\..\ace\Message_Queue.h"\
+ "..\..\..\ace\Message_Queue.i"\
+ "..\..\..\ace\Message_Queue_T.cpp"\
+ "..\..\..\ace\Message_Queue_T.h"\
+ "..\..\..\ace\Message_Queue_T.i"\
+ "..\..\..\ace\Module.cpp"\
+ "..\..\..\ace\Module.h"\
+ "..\..\..\ace\Module.i"\
+ "..\..\..\ace\Object_Manager.h"\
+ "..\..\..\ace\Object_Manager.i"\
+ "..\..\..\ace\OS.h"\
+ "..\..\..\ace\OS.i"\
+ "..\..\..\ace\Reactor.h"\
+ "..\..\..\ace\Reactor.i"\
+ "..\..\..\ace\Reactor_Impl.h"\
+ "..\..\..\ace\Service_Config.h"\
+ "..\..\..\ace\Service_Config.i"\
+ "..\..\..\ace\Service_Object.h"\
+ "..\..\..\ace\Service_Object.i"\
+ "..\..\..\ace\Service_Repository.h"\
+ "..\..\..\ace\Service_Repository.i"\
+ "..\..\..\ace\Service_Types.h"\
+ "..\..\..\ace\Service_Types.i"\
+ "..\..\..\ace\Shared_Object.h"\
+ "..\..\..\ace\Shared_Object.i"\
+ "..\..\..\ace\Signal.h"\
+ "..\..\..\ace\Signal.i"\
+ "..\..\..\ace\Singleton.cpp"\
+ "..\..\..\ace\Singleton.h"\
+ "..\..\..\ace\Singleton.i"\
+ "..\..\..\ace\SOCK.h"\
+ "..\..\..\ace\SOCK.i"\
+ "..\..\..\ace\SOCK_Acceptor.h"\
+ "..\..\..\ace\SOCK_Acceptor.i"\
+ "..\..\..\ace\SOCK_Connector.h"\
+ "..\..\..\ace\SOCK_Connector.i"\
+ "..\..\..\ace\SOCK_Dgram.h"\
+ "..\..\..\ace\SOCK_Dgram.i"\
+ "..\..\..\ace\SOCK_Dgram_Mcast.h"\
+ "..\..\..\ace\SOCK_Dgram_Mcast.i"\
+ "..\..\..\ace\SOCK_IO.h"\
+ "..\..\..\ace\SOCK_IO.i"\
+ "..\..\..\ace\SOCK_Stream.h"\
+ "..\..\..\ace\SOCK_Stream.i"\
+ "..\..\..\ace\SString.h"\
+ "..\..\..\ace\SString.i"\
+ "..\..\..\ace\Strategies.h"\
+ "..\..\..\ace\Strategies.i"\
+ "..\..\..\ace\Strategies_T.cpp"\
+ "..\..\..\ace\Strategies_T.h"\
+ "..\..\..\ace\Strategies_T.i"\
+ "..\..\..\ace\Stream_Modules.cpp"\
+ "..\..\..\ace\Stream_Modules.h"\
+ "..\..\..\ace\Stream_Modules.i"\
+ "..\..\..\ace\streams.h"\
+ "..\..\..\ace\SV_Semaphore_Complex.h"\
+ "..\..\..\ace\SV_Semaphore_Complex.i"\
+ "..\..\..\ace\SV_Semaphore_Simple.h"\
+ "..\..\..\ace\SV_Semaphore_Simple.i"\
+ "..\..\..\ace\Svc_Conf_Tokens.h"\
+ "..\..\..\ace\Svc_Handler.cpp"\
+ "..\..\..\ace\Svc_Handler.h"\
+ "..\..\..\ace\Svc_Handler.i"\
+ "..\..\..\ace\Synch.h"\
+ "..\..\..\ace\Synch.i"\
+ "..\..\..\ace\Synch_Options.h"\
+ "..\..\..\ace\Synch_Options.i"\
+ "..\..\..\ace\Synch_T.cpp"\
+ "..\..\..\ace\Synch_T.h"\
+ "..\..\..\ace\Synch_T.i"\
+ "..\..\..\ace\Task.h"\
+ "..\..\..\ace\Task.i"\
+ "..\..\..\ace\Task_T.cpp"\
+ "..\..\..\ace\Task_T.h"\
+ "..\..\..\ace\Task_T.i"\
+ "..\..\..\ace\Thread.h"\
+ "..\..\..\ace\Thread.i"\
+ "..\..\..\ace\Thread_Manager.h"\
+ "..\..\..\ace\Thread_Manager.i"\
+ "..\..\..\ace\Time_Value.h"\
+ "..\..\..\ace\Timer_Queue.h"\
+ "..\..\..\ace\Timer_Queue_T.cpp"\
+ "..\..\..\ace\Timer_Queue_T.h"\
+ "..\..\..\ace\Timer_Queue_T.i"\
+ "..\..\..\ace\Trace.h"\
+ "..\..\..\ace\WFMO_Reactor.h"\
+ "..\..\..\ace\WFMO_Reactor.i"\
+ "..\..\..\ace\ws2tcpip.h"\
+ "..\..\tao\any.h"\
+ "..\..\tao\any.i"\
+ "..\..\tao\cdr.h"\
+ "..\..\tao\cdr.i"\
+ "..\..\tao\CDR_Interpreter.h"\
+ "..\..\tao\Client_Strategy_Factory.h"\
+ "..\..\tao\corba.h"\
+ "..\..\tao\CurrentC.h"\
+ "..\..\tao\CurrentC.i"\
+ "..\..\tao\debug.h"\
+ "..\..\tao\default_client.h"\
+ "..\..\tao\default_client.i"\
+ "..\..\tao\default_server.h"\
+ "..\..\tao\default_server.i"\
+ "..\..\tao\Environment.h"\
+ "..\..\tao\Environment.i"\
+ "..\..\tao\Exception.h"\
+ "..\..\tao\Exception.i"\
+ "..\..\tao\giop.h"\
+ "..\..\tao\giop.i"\
+ "..\..\tao\Invocation.h"\
+ "..\..\tao\Invocation.i"\
+ "..\..\tao\marshal.h"\
+ "..\..\tao\marshal.i"\
+ "..\..\tao\nvlist.h"\
+ "..\..\tao\NVList.i"\
+ "..\..\tao\object.h"\
+ "..\..\tao\object.i"\
+ "..\..\tao\Object_KeyC.h"\
+ "..\..\tao\Object_KeyC.i"\
+ "..\..\tao\Operation_Table.h"\
+ "..\..\tao\orb.h"\
+ "..\..\tao\ORB.i"\
+ "..\..\tao\orb_core.h"\
+ "..\..\tao\orb_core.i"\
+ "..\..\tao\orbconf.h"\
+ "..\..\tao\params.h"\
+ "..\..\tao\params.i"\
+ "..\..\tao\poa.h"\
+ "..\..\tao\POA.i"\
+ "..\..\tao\POA_CORBA.h"\
+ "..\..\tao\poa_macros.h"\
+ "..\..\tao\poaC.h"\
+ "..\..\tao\poaC.i"\
+ "..\..\tao\poaS.h"\
+ "..\..\tao\poaS.i"\
+ "..\..\tao\PolicyC.h"\
+ "..\..\tao\PolicyC.i"\
+ "..\..\tao\Principal.h"\
+ "..\..\tao\Principal.i"\
+ "..\..\tao\request.h"\
+ "..\..\tao\Request.i"\
+ "..\..\tao\sequence.h"\
+ "..\..\tao\sequence.i"\
+ "..\..\tao\Sequence_T.cpp"\
+ "..\..\tao\Sequence_T.h"\
+ "..\..\tao\Sequence_T.i"\
+ "..\..\tao\servant_base.h"\
+ "..\..\tao\Server_Request.h"\
+ "..\..\tao\Server_Request.i"\
+ "..\..\tao\Server_Strategy_Factory.h"\
+ "..\..\tao\singletons.h"\
+ "..\..\tao\stub.h"\
+ "..\..\tao\stub.i"\
+ "..\..\tao\TAO.h"\
+ "..\..\tao\typecode.h"\
+ "..\..\tao\typecode.i"\
+ "..\..\tao\Union.h"\
+ "..\..\tao\varout.cpp"\
+ "..\..\tao\varout.h"\
+ "..\..\tao\varout.i"\
+ "..\orbsvcs\CosNamingC.h"\
+ "..\orbsvcs\CosNamingC.i"\
+ "..\orbsvcs\CosNamingS.h"\
+ "..\orbsvcs\CosNamingS.i"\
+ "..\orbsvcs\CosNamingS_T.cpp"\
+ "..\orbsvcs\CosNamingS_T.h"\
+ "..\orbsvcs\CosNamingS_T.i"\
+ "..\orbsvcs\IOR_Multicast.h"\
+ "..\orbsvcs\Naming\Entries.h"\
+ "..\orbsvcs\Naming\Naming_Utils.h"\
+ "..\orbsvcs\orbsvcs_export.h"\
+ ".\NT_Naming_Service.h"\
+
+NODEP_CPP_NT_NA=\
+ "..\..\..\ace\sys_conf.h"\
+ "..\..\tao\align.h"\
+ "..\..\tao\connect.h"\
+ "..\..\tao\connect.i"\
+ "..\..\tao\IIOP_Object.h"\
+ "..\..\tao\IIOP_Object.i"\
+ "..\..\tao\IIOP_ORB.h"\
+ "..\..\tao\IIOP_ORB.i"\
+ "..\..\tao\Object_Table.h"\
+ "..\..\tao\ORB_Strategies_T.cpp"\
+ "..\..\tao\ORB_Strategies_T.h"\
+ "..\..\tao\ORB_Strategies_T.i"\
+ "..\orbsvcs\Naming\CosNaming_i.h"\
+
+
+!ELSEIF "$(CFG)" == "NT_Naming_Service - Win32 Alpha Release"
+
+!ENDIF
+
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\Naming_Service.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\NT_Naming_Service.h
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/TAO/orbsvcs/Naming_Service/NT_Naming_Service.h b/TAO/orbsvcs/Naming_Service/NT_Naming_Service.h
new file mode 100644
index 00000000000..a0440c9de80
--- /dev/null
+++ b/TAO/orbsvcs/Naming_Service/NT_Naming_Service.h
@@ -0,0 +1,68 @@
+/* -*- C++ -*- */
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// ace
+//
+// = FILENAME
+// NT_Naming_Service.h
+//
+//
+// = DESCRIPTION
+// Run the TAO Naming Service as a Windows NT Service.
+//
+// = AUTHORS
+// John Tucker <jtucker@infoglide.com> and
+// Mike Vitalo <mvitalo@infoglide.com>
+//
+// ============================================================================
+
+#ifndef TAO_NT_NAMING_SERVICE_H
+#define TAO_NT_NAMING_SERVICE_H
+
+#include /**/ "ace/OS.h"
+#include /**/ "ace/NT_Service.h"
+#include /**/ "ace/Singleton.h"
+#include /**/ "ace/Synch.h"
+
+class TAO_NT_Naming_Service : public ACE_NT_Service
+{
+ // = TITLE
+ // Run the TAO Naming Service as a Windows NT Service.
+public:
+ typedef ACE_Recursive_Thread_Mutex MUTEX;
+
+ // = Initialization and termination hooks.
+ TAO_NT_Naming_Service (void);
+ virtual ~TAO_NT_Naming_Service (void);
+
+ virtual void handle_control (DWORD control_code);
+ // We override <handle_control> because it handles stop requests
+ // privately.
+
+ virtual int handle_exception (ACE_HANDLE h);
+ // We override <handle_exception> so a 'stop' control code can pop
+ // the reactor off of its wait.
+
+ virtual int svc (void);
+ // This is a virtual method inherited from ACE_NT_Service.
+
+ virtual int init (int argc,
+ ASYS_TCHAR *argv[]);
+ // Initialize the objects argc_ and argv_ attributes values.
+
+private:
+ // Keep track of the "command-line" arguments.
+ int argc_;
+ char **argv_;
+
+ friend class ACE_Singleton<TAO_NT_Naming_Service, MUTEX>;
+};
+
+typedef ACE_Singleton<TAO_NT_Naming_Service, ACE_Mutex> SERVICE;
+
+#endif /* TAO_NT_NAMING_SERVER_H */
+
+
diff --git a/TAO/orbsvcs/Naming_Service/Naming_Service.dsp b/TAO/orbsvcs/Naming_Service/Naming_Service.dsp
index f39619017ec..638cb03ab2b 100644
--- a/TAO/orbsvcs/Naming_Service/Naming_Service.dsp
+++ b/TAO/orbsvcs/Naming_Service/Naming_Service.dsp
@@ -1,460 +1,460 @@
-# Microsoft Developer Studio Project File - Name="Naming_Service" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-# TARGTYPE "Win32 (ALPHA) Console Application" 0x0603
-
-CFG=Naming_Service - Win32 Alpha Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "Naming_Service.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "Naming_Service.mak" CFG="Naming_Service - Win32 Alpha Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "Naming_Service - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "Naming_Service - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE "Naming_Service - Win32 Alpha Debug" (based on "Win32 (ALPHA) Console Application")
-!MESSAGE "Naming_Service - Win32 Alpha Release" (based on "Win32 (ALPHA) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-
-!IF "$(CFG)" == "Naming_Service - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-CPP=cl.exe
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I ".." /I "..\.." /I "..\..\.." /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_HAS_DLL=1 /FD /c
-# SUBTRACT CPP /YX
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 orbsvcs.lib TAO.lib ace.lib /nologo /subsystem:console /machine:I386 /libpath:"..\orbsvcs" /libpath:"..\..\tao" /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "Naming_Service - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-CPP=cl.exe
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I ".." /I "..\.." /I "..\..\.." /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_HAS_DLL=1 /FD /c
-# SUBTRACT CPP /YX
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 TAOd.lib orbsvcsd.lib aced.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /pdbtype:sept /libpath:"..\orbsvcs" /libpath:"..\..\tao" /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "Naming_Service - Win32 Alpha Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Naming_S"
-# PROP BASE Intermediate_Dir "Naming_S"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-CPP=cl.exe
-# ADD BASE CPP /nologo /Gt0 /W3 /GX /Zi /Od /I ".." /I "..\.." /I "..\..\.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_HAS_DLL=1 /FD /c
-# SUBTRACT BASE CPP /YX
-# ADD CPP /nologo /Gt0 /W3 /GX /Zi /Od /I ".." /I "..\.." /I "..\..\.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_HAS_DLL=1 /FD /MDd /c
-# SUBTRACT CPP /YX
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 TAOd.lib orbsvcsd.lib aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:ALPHA /pdbtype:sept /libpath:"..\orbsvcs" /libpath:"..\..\tao" /libpath:"..\..\..\ace"
-# ADD LINK32 TAOd.lib orbsvcsd.lib aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:ALPHA /pdbtype:sept /libpath:"..\orbsvcs" /libpath:"..\..\tao" /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "Naming_Service - Win32 Alpha Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Naming_0"
-# PROP BASE Intermediate_Dir "Naming_0"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-CPP=cl.exe
-# ADD BASE CPP /nologo /Gt0 /W3 /GX /O2 /I ".." /I "..\.." /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_HAS_DLL=1 /FD /c
-# SUBTRACT BASE CPP /YX
-# ADD CPP /nologo /MD /Gt0 /W3 /GX /O2 /I ".." /I "..\.." /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_HAS_DLL=1 /FD /c
-# SUBTRACT CPP /YX
-RSC=rc.exe
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 orbsvcs.lib TAO.lib ace.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /machine:ALPHA /libpath:"..\orbsvcs" /libpath:"..\..\tao" /libpath:"..\..\..\ace"
-# ADD LINK32 orbsvcs.lib TAO.lib ace.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /machine:ALPHA /libpath:"..\orbsvcs" /libpath:"..\..\tao" /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "Naming_Service - Win32 Release"
-# Name "Naming_Service - Win32 Debug"
-# Name "Naming_Service - Win32 Alpha Debug"
-# Name "Naming_Service - Win32 Alpha Release"
-# Begin Group "Source Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\Naming_Server.cpp
-
-!IF "$(CFG)" == "Naming_Service - Win32 Release"
-
-!ELSEIF "$(CFG)" == "Naming_Service - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "Naming_Service - Win32 Alpha Debug"
-
-!ELSEIF "$(CFG)" == "Naming_Service - Win32 Alpha Release"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\Naming_Service.cpp
-
-!IF "$(CFG)" == "Naming_Service - Win32 Release"
-
-!ELSEIF "$(CFG)" == "Naming_Service - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "Naming_Service - Win32 Alpha Debug"
-
-DEP_CPP_NAMIN=\
- "..\..\..\ace\Acceptor.cpp"\
- "..\..\..\ace\Acceptor.h"\
- "..\..\..\ace\Acceptor.i"\
- "..\..\..\ace\ACE.h"\
- "..\..\..\ace\ACE.i"\
- "..\..\..\ace\Addr.h"\
- "..\..\..\ace\Addr.i"\
- "..\..\..\ace\Atomic_Op.i"\
- "..\..\..\ace\Auto_Ptr.cpp"\
- "..\..\..\ace\Auto_Ptr.h"\
- "..\..\..\ace\Auto_Ptr.i"\
- "..\..\..\ace\Basic_Types.h"\
- "..\..\..\ace\Basic_Types.i"\
- "..\..\..\ace\config-win32-borland.h"\
- "..\..\..\ace\config-win32-common.h"\
- "..\..\..\ace\config-win32.h"\
- "..\..\..\ace\config-WinCE.h"\
- "..\..\..\ace\config.h"\
- "..\..\..\ace\Connector.cpp"\
- "..\..\..\ace\Connector.h"\
- "..\..\..\ace\Connector.i"\
- "..\..\..\ace\Containers.cpp"\
- "..\..\..\ace\Containers.h"\
- "..\..\..\ace\Containers.i"\
- "..\..\..\ace\Dynamic.h"\
- "..\..\..\ace\Dynamic.i"\
- "..\..\..\ace\Dynamic_Service.cpp"\
- "..\..\..\ace\Dynamic_Service.h"\
- "..\..\..\ace\Event_Handler.h"\
- "..\..\..\ace\Event_Handler.i"\
- "..\..\..\ace\Free_List.cpp"\
- "..\..\..\ace\Free_List.h"\
- "..\..\..\ace\Free_List.i"\
- "..\..\..\ace\Get_Opt.h"\
- "..\..\..\ace\Get_Opt.i"\
- "..\..\..\ace\Handle_Set.h"\
- "..\..\..\ace\Handle_Set.i"\
- "..\..\..\ace\Hash_Map_Manager.cpp"\
- "..\..\..\ace\Hash_Map_Manager.h"\
- "..\..\..\ace\inc_user_config.h"\
- "..\..\..\ace\INET_Addr.h"\
- "..\..\..\ace\INET_Addr.i"\
- "..\..\..\ace\IO_Cntl_Msg.h"\
- "..\..\..\ace\iosfwd.h"\
- "..\..\..\ace\IPC_SAP.h"\
- "..\..\..\ace\IPC_SAP.i"\
- "..\..\..\ace\Log_Msg.h"\
- "..\..\..\ace\Log_Priority.h"\
- "..\..\..\ace\Log_Record.h"\
- "..\..\..\ace\Log_Record.i"\
- "..\..\..\ace\Malloc.h"\
- "..\..\..\ace\Malloc.i"\
- "..\..\..\ace\Malloc_Base.h"\
- "..\..\..\ace\Malloc_T.cpp"\
- "..\..\..\ace\Malloc_T.h"\
- "..\..\..\ace\Malloc_T.i"\
- "..\..\..\ace\Managed_Object.cpp"\
- "..\..\..\ace\Managed_Object.h"\
- "..\..\..\ace\Managed_Object.i"\
- "..\..\..\ace\Map_Manager.cpp"\
- "..\..\..\ace\Map_Manager.h"\
- "..\..\..\ace\Map_Manager.i"\
- "..\..\..\ace\Mem_Map.h"\
- "..\..\..\ace\Mem_Map.i"\
- "..\..\..\ace\Memory_Pool.h"\
- "..\..\..\ace\Memory_Pool.i"\
- "..\..\..\ace\Message_Block.h"\
- "..\..\..\ace\Message_Block.i"\
- "..\..\..\ace\Message_Queue.h"\
- "..\..\..\ace\Message_Queue.i"\
- "..\..\..\ace\Message_Queue_T.cpp"\
- "..\..\..\ace\Message_Queue_T.h"\
- "..\..\..\ace\Message_Queue_T.i"\
- "..\..\..\ace\Module.cpp"\
- "..\..\..\ace\Module.h"\
- "..\..\..\ace\Module.i"\
- "..\..\..\ace\Object_Manager.h"\
- "..\..\..\ace\Object_Manager.i"\
- "..\..\..\ace\OS.h"\
- "..\..\..\ace\OS.i"\
- "..\..\..\ace\Reactor.h"\
- "..\..\..\ace\Reactor.i"\
- "..\..\..\ace\Reactor_Impl.h"\
- "..\..\..\ace\Service_Config.h"\
- "..\..\..\ace\Service_Config.i"\
- "..\..\..\ace\Service_Object.h"\
- "..\..\..\ace\Service_Object.i"\
- "..\..\..\ace\Service_Repository.h"\
- "..\..\..\ace\Service_Repository.i"\
- "..\..\..\ace\Service_Types.h"\
- "..\..\..\ace\Service_Types.i"\
- "..\..\..\ace\Shared_Object.h"\
- "..\..\..\ace\Shared_Object.i"\
- "..\..\..\ace\Signal.h"\
- "..\..\..\ace\Signal.i"\
- "..\..\..\ace\Singleton.cpp"\
- "..\..\..\ace\Singleton.h"\
- "..\..\..\ace\Singleton.i"\
- "..\..\..\ace\SOCK.h"\
- "..\..\..\ace\SOCK.i"\
- "..\..\..\ace\SOCK_Acceptor.h"\
- "..\..\..\ace\SOCK_Acceptor.i"\
- "..\..\..\ace\SOCK_Connector.h"\
- "..\..\..\ace\SOCK_Connector.i"\
- "..\..\..\ace\SOCK_Dgram.h"\
- "..\..\..\ace\SOCK_Dgram.i"\
- "..\..\..\ace\SOCK_Dgram_Mcast.h"\
- "..\..\..\ace\SOCK_Dgram_Mcast.i"\
- "..\..\..\ace\SOCK_IO.h"\
- "..\..\..\ace\SOCK_IO.i"\
- "..\..\..\ace\SOCK_Stream.h"\
- "..\..\..\ace\SOCK_Stream.i"\
- "..\..\..\ace\SString.h"\
- "..\..\..\ace\SString.i"\
- "..\..\..\ace\Strategies.h"\
- "..\..\..\ace\Strategies.i"\
- "..\..\..\ace\Strategies_T.cpp"\
- "..\..\..\ace\Strategies_T.h"\
- "..\..\..\ace\Strategies_T.i"\
- "..\..\..\ace\Stream_Modules.cpp"\
- "..\..\..\ace\Stream_Modules.h"\
- "..\..\..\ace\Stream_Modules.i"\
- "..\..\..\ace\streams.h"\
- "..\..\..\ace\SV_Semaphore_Complex.h"\
- "..\..\..\ace\SV_Semaphore_Complex.i"\
- "..\..\..\ace\SV_Semaphore_Simple.h"\
- "..\..\..\ace\SV_Semaphore_Simple.i"\
- "..\..\..\ace\Svc_Conf_Tokens.h"\
- "..\..\..\ace\Svc_Handler.cpp"\
- "..\..\..\ace\Svc_Handler.h"\
- "..\..\..\ace\Svc_Handler.i"\
- "..\..\..\ace\Synch.h"\
- "..\..\..\ace\Synch.i"\
- "..\..\..\ace\Synch_Options.h"\
- "..\..\..\ace\Synch_Options.i"\
- "..\..\..\ace\Synch_T.cpp"\
- "..\..\..\ace\Synch_T.h"\
- "..\..\..\ace\Synch_T.i"\
- "..\..\..\ace\Task.h"\
- "..\..\..\ace\Task.i"\
- "..\..\..\ace\Task_T.cpp"\
- "..\..\..\ace\Task_T.h"\
- "..\..\..\ace\Task_T.i"\
- "..\..\..\ace\Thread.h"\
- "..\..\..\ace\Thread.i"\
- "..\..\..\ace\Thread_Manager.h"\
- "..\..\..\ace\Thread_Manager.i"\
- "..\..\..\ace\Time_Value.h"\
- "..\..\..\ace\Timer_Queue.h"\
- "..\..\..\ace\Timer_Queue_T.cpp"\
- "..\..\..\ace\Timer_Queue_T.h"\
- "..\..\..\ace\Timer_Queue_T.i"\
- "..\..\..\ace\Trace.h"\
- "..\..\..\ace\WFMO_Reactor.h"\
- "..\..\..\ace\WFMO_Reactor.i"\
- "..\..\..\ace\ws2tcpip.h"\
- "..\..\tao\any.h"\
- "..\..\tao\any.i"\
- "..\..\tao\cdr.h"\
- "..\..\tao\cdr.i"\
- "..\..\tao\CDR_Interpreter.h"\
- "..\..\tao\Client_Strategy_Factory.h"\
- "..\..\tao\corba.h"\
- "..\..\tao\CurrentC.h"\
- "..\..\tao\CurrentC.i"\
- "..\..\tao\debug.h"\
- "..\..\tao\default_client.h"\
- "..\..\tao\default_client.i"\
- "..\..\tao\default_server.h"\
- "..\..\tao\default_server.i"\
- "..\..\tao\Environment.h"\
- "..\..\tao\Environment.i"\
- "..\..\tao\Exception.h"\
- "..\..\tao\Exception.i"\
- "..\..\tao\giop.h"\
- "..\..\tao\giop.i"\
- "..\..\tao\Invocation.h"\
- "..\..\tao\Invocation.i"\
- "..\..\tao\marshal.h"\
- "..\..\tao\marshal.i"\
- "..\..\tao\nvlist.h"\
- "..\..\tao\NVList.i"\
- "..\..\tao\object.h"\
- "..\..\tao\object.i"\
- "..\..\tao\Object_KeyC.h"\
- "..\..\tao\Object_KeyC.i"\
- "..\..\tao\Operation_Table.h"\
- "..\..\tao\orb.h"\
- "..\..\tao\ORB.i"\
- "..\..\tao\orb_core.h"\
- "..\..\tao\orb_core.i"\
- "..\..\tao\orbconf.h"\
- "..\..\tao\params.h"\
- "..\..\tao\params.i"\
- "..\..\tao\poa.h"\
- "..\..\tao\POA.i"\
- "..\..\tao\POA_CORBA.h"\
- "..\..\tao\poa_macros.h"\
- "..\..\tao\poaC.h"\
- "..\..\tao\poaC.i"\
- "..\..\tao\poaS.h"\
- "..\..\tao\poaS.i"\
- "..\..\tao\PolicyC.h"\
- "..\..\tao\PolicyC.i"\
- "..\..\tao\Principal.h"\
- "..\..\tao\Principal.i"\
- "..\..\tao\request.h"\
- "..\..\tao\Request.i"\
- "..\..\tao\sequence.h"\
- "..\..\tao\sequence.i"\
- "..\..\tao\Sequence_T.cpp"\
- "..\..\tao\Sequence_T.h"\
- "..\..\tao\Sequence_T.i"\
- "..\..\tao\servant_base.h"\
- "..\..\tao\Server_Request.h"\
- "..\..\tao\Server_Request.i"\
- "..\..\tao\Server_Strategy_Factory.h"\
- "..\..\tao\singletons.h"\
- "..\..\tao\stub.h"\
- "..\..\tao\stub.i"\
- "..\..\tao\TAO.h"\
- "..\..\tao\typecode.h"\
- "..\..\tao\typecode.i"\
- "..\..\tao\Union.h"\
- "..\..\tao\varout.cpp"\
- "..\..\tao\varout.h"\
- "..\..\tao\varout.i"\
- "..\orbsvcs\CosNamingC.h"\
- "..\orbsvcs\CosNamingC.i"\
- "..\orbsvcs\CosNamingS.h"\
- "..\orbsvcs\CosNamingS.i"\
- "..\orbsvcs\CosNamingS_T.cpp"\
- "..\orbsvcs\CosNamingS_T.h"\
- "..\orbsvcs\CosNamingS_T.i"\
- "..\orbsvcs\IOR_Multicast.h"\
- "..\orbsvcs\Naming\Entries.h"\
- "..\orbsvcs\Naming\Naming_Utils.h"\
- "..\orbsvcs\orbsvcs_export.h"\
- ".\Naming_Service.h"\
-
-NODEP_CPP_NAMIN=\
- "..\..\..\ace\sys_conf.h"\
- "..\..\tao\align.h"\
- "..\..\tao\connect.h"\
- "..\..\tao\connect.i"\
- "..\..\tao\IIOP_Object.h"\
- "..\..\tao\IIOP_Object.i"\
- "..\..\tao\IIOP_ORB.h"\
- "..\..\tao\IIOP_ORB.i"\
- "..\..\tao\Object_Table.h"\
- "..\..\tao\ORB_Strategies_T.cpp"\
- "..\..\tao\ORB_Strategies_T.h"\
- "..\..\tao\ORB_Strategies_T.i"\
- "..\orbsvcs\Naming\CosNaming_i.h"\
-
-
-!ELSEIF "$(CFG)" == "Naming_Service - Win32 Alpha Release"
-
-!ENDIF
-
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\CosNaming_i.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Naming_Service.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\NS_CosNaming.h
-# End Source File
-# End Group
-# End Target
-# End Project
+# Microsoft Developer Studio Project File - Name="Naming_Service" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+# TARGTYPE "Win32 (ALPHA) Console Application" 0x0603
+
+CFG=Naming_Service - Win32 Alpha Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "Naming_Service.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "Naming_Service.mak" CFG="Naming_Service - Win32 Alpha Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "Naming_Service - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "Naming_Service - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE "Naming_Service - Win32 Alpha Debug" (based on "Win32 (ALPHA) Console Application")
+!MESSAGE "Naming_Service - Win32 Alpha Release" (based on "Win32 (ALPHA) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+
+!IF "$(CFG)" == "Naming_Service - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+CPP=cl.exe
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I ".." /I "..\.." /I "..\..\.." /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_HAS_DLL=1 /FD /c
+# SUBTRACT CPP /YX
+RSC=rc.exe
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 orbsvcs.lib TAO.lib ace.lib /nologo /subsystem:console /machine:I386 /libpath:"..\orbsvcs" /libpath:"..\..\tao" /libpath:"..\..\..\ace"
+
+!ELSEIF "$(CFG)" == "Naming_Service - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir ""
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+CPP=cl.exe
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I ".." /I "..\.." /I "..\..\.." /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_HAS_DLL=1 /FD /c
+# SUBTRACT CPP /YX
+RSC=rc.exe
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 TAOd.lib orbsvcsd.lib aced.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /pdbtype:sept /libpath:"..\orbsvcs" /libpath:"..\..\tao" /libpath:"..\..\..\ace"
+
+!ELSEIF "$(CFG)" == "Naming_Service - Win32 Alpha Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Naming_S"
+# PROP BASE Intermediate_Dir "Naming_S"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir ""
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+CPP=cl.exe
+# ADD BASE CPP /nologo /Gt0 /W3 /GX /Zi /Od /I ".." /I "..\.." /I "..\..\.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_HAS_DLL=1 /FD /c
+# SUBTRACT BASE CPP /YX
+# ADD CPP /nologo /Gt0 /W3 /GX /Zi /Od /I ".." /I "..\.." /I "..\..\.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_HAS_DLL=1 /FD /MDd /c
+# SUBTRACT CPP /YX
+RSC=rc.exe
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 TAOd.lib orbsvcsd.lib aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:ALPHA /pdbtype:sept /libpath:"..\orbsvcs" /libpath:"..\..\tao" /libpath:"..\..\..\ace"
+# ADD LINK32 TAOd.lib orbsvcsd.lib aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:ALPHA /pdbtype:sept /libpath:"..\orbsvcs" /libpath:"..\..\tao" /libpath:"..\..\..\ace"
+
+!ELSEIF "$(CFG)" == "Naming_Service - Win32 Alpha Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Naming_0"
+# PROP BASE Intermediate_Dir "Naming_0"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+CPP=cl.exe
+# ADD BASE CPP /nologo /Gt0 /W3 /GX /O2 /I ".." /I "..\.." /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_HAS_DLL=1 /FD /c
+# SUBTRACT BASE CPP /YX
+# ADD CPP /nologo /MD /Gt0 /W3 /GX /O2 /I ".." /I "..\.." /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_HAS_DLL=1 /FD /c
+# SUBTRACT CPP /YX
+RSC=rc.exe
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 orbsvcs.lib TAO.lib ace.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /machine:ALPHA /libpath:"..\orbsvcs" /libpath:"..\..\tao" /libpath:"..\..\..\ace"
+# ADD LINK32 orbsvcs.lib TAO.lib ace.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /machine:ALPHA /libpath:"..\orbsvcs" /libpath:"..\..\tao" /libpath:"..\..\..\ace"
+
+!ENDIF
+
+# Begin Target
+
+# Name "Naming_Service - Win32 Release"
+# Name "Naming_Service - Win32 Debug"
+# Name "Naming_Service - Win32 Alpha Debug"
+# Name "Naming_Service - Win32 Alpha Release"
+# Begin Group "Source Files"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\Naming_Server.cpp
+
+!IF "$(CFG)" == "Naming_Service - Win32 Release"
+
+!ELSEIF "$(CFG)" == "Naming_Service - Win32 Debug"
+
+!ELSEIF "$(CFG)" == "Naming_Service - Win32 Alpha Debug"
+
+!ELSEIF "$(CFG)" == "Naming_Service - Win32 Alpha Release"
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\Naming_Service.cpp
+
+!IF "$(CFG)" == "Naming_Service - Win32 Release"
+
+!ELSEIF "$(CFG)" == "Naming_Service - Win32 Debug"
+
+!ELSEIF "$(CFG)" == "Naming_Service - Win32 Alpha Debug"
+
+DEP_CPP_NAMIN=\
+ "..\..\..\ace\Acceptor.cpp"\
+ "..\..\..\ace\Acceptor.h"\
+ "..\..\..\ace\Acceptor.i"\
+ "..\..\..\ace\ACE.h"\
+ "..\..\..\ace\ACE.i"\
+ "..\..\..\ace\Addr.h"\
+ "..\..\..\ace\Addr.i"\
+ "..\..\..\ace\Atomic_Op.i"\
+ "..\..\..\ace\Auto_Ptr.cpp"\
+ "..\..\..\ace\Auto_Ptr.h"\
+ "..\..\..\ace\Auto_Ptr.i"\
+ "..\..\..\ace\Basic_Types.h"\
+ "..\..\..\ace\Basic_Types.i"\
+ "..\..\..\ace\config-win32-borland.h"\
+ "..\..\..\ace\config-win32-common.h"\
+ "..\..\..\ace\config-win32.h"\
+ "..\..\..\ace\config-WinCE.h"\
+ "..\..\..\ace\config.h"\
+ "..\..\..\ace\Connector.cpp"\
+ "..\..\..\ace\Connector.h"\
+ "..\..\..\ace\Connector.i"\
+ "..\..\..\ace\Containers.cpp"\
+ "..\..\..\ace\Containers.h"\
+ "..\..\..\ace\Containers.i"\
+ "..\..\..\ace\Dynamic.h"\
+ "..\..\..\ace\Dynamic.i"\
+ "..\..\..\ace\Dynamic_Service.cpp"\
+ "..\..\..\ace\Dynamic_Service.h"\
+ "..\..\..\ace\Event_Handler.h"\
+ "..\..\..\ace\Event_Handler.i"\
+ "..\..\..\ace\Free_List.cpp"\
+ "..\..\..\ace\Free_List.h"\
+ "..\..\..\ace\Free_List.i"\
+ "..\..\..\ace\Get_Opt.h"\
+ "..\..\..\ace\Get_Opt.i"\
+ "..\..\..\ace\Handle_Set.h"\
+ "..\..\..\ace\Handle_Set.i"\
+ "..\..\..\ace\Hash_Map_Manager.cpp"\
+ "..\..\..\ace\Hash_Map_Manager.h"\
+ "..\..\..\ace\inc_user_config.h"\
+ "..\..\..\ace\INET_Addr.h"\
+ "..\..\..\ace\INET_Addr.i"\
+ "..\..\..\ace\IO_Cntl_Msg.h"\
+ "..\..\..\ace\iosfwd.h"\
+ "..\..\..\ace\IPC_SAP.h"\
+ "..\..\..\ace\IPC_SAP.i"\
+ "..\..\..\ace\Log_Msg.h"\
+ "..\..\..\ace\Log_Priority.h"\
+ "..\..\..\ace\Log_Record.h"\
+ "..\..\..\ace\Log_Record.i"\
+ "..\..\..\ace\Malloc.h"\
+ "..\..\..\ace\Malloc.i"\
+ "..\..\..\ace\Malloc_Base.h"\
+ "..\..\..\ace\Malloc_T.cpp"\
+ "..\..\..\ace\Malloc_T.h"\
+ "..\..\..\ace\Malloc_T.i"\
+ "..\..\..\ace\Managed_Object.cpp"\
+ "..\..\..\ace\Managed_Object.h"\
+ "..\..\..\ace\Managed_Object.i"\
+ "..\..\..\ace\Map_Manager.cpp"\
+ "..\..\..\ace\Map_Manager.h"\
+ "..\..\..\ace\Map_Manager.i"\
+ "..\..\..\ace\Mem_Map.h"\
+ "..\..\..\ace\Mem_Map.i"\
+ "..\..\..\ace\Memory_Pool.h"\
+ "..\..\..\ace\Memory_Pool.i"\
+ "..\..\..\ace\Message_Block.h"\
+ "..\..\..\ace\Message_Block.i"\
+ "..\..\..\ace\Message_Queue.h"\
+ "..\..\..\ace\Message_Queue.i"\
+ "..\..\..\ace\Message_Queue_T.cpp"\
+ "..\..\..\ace\Message_Queue_T.h"\
+ "..\..\..\ace\Message_Queue_T.i"\
+ "..\..\..\ace\Module.cpp"\
+ "..\..\..\ace\Module.h"\
+ "..\..\..\ace\Module.i"\
+ "..\..\..\ace\Object_Manager.h"\
+ "..\..\..\ace\Object_Manager.i"\
+ "..\..\..\ace\OS.h"\
+ "..\..\..\ace\OS.i"\
+ "..\..\..\ace\Reactor.h"\
+ "..\..\..\ace\Reactor.i"\
+ "..\..\..\ace\Reactor_Impl.h"\
+ "..\..\..\ace\Service_Config.h"\
+ "..\..\..\ace\Service_Config.i"\
+ "..\..\..\ace\Service_Object.h"\
+ "..\..\..\ace\Service_Object.i"\
+ "..\..\..\ace\Service_Repository.h"\
+ "..\..\..\ace\Service_Repository.i"\
+ "..\..\..\ace\Service_Types.h"\
+ "..\..\..\ace\Service_Types.i"\
+ "..\..\..\ace\Shared_Object.h"\
+ "..\..\..\ace\Shared_Object.i"\
+ "..\..\..\ace\Signal.h"\
+ "..\..\..\ace\Signal.i"\
+ "..\..\..\ace\Singleton.cpp"\
+ "..\..\..\ace\Singleton.h"\
+ "..\..\..\ace\Singleton.i"\
+ "..\..\..\ace\SOCK.h"\
+ "..\..\..\ace\SOCK.i"\
+ "..\..\..\ace\SOCK_Acceptor.h"\
+ "..\..\..\ace\SOCK_Acceptor.i"\
+ "..\..\..\ace\SOCK_Connector.h"\
+ "..\..\..\ace\SOCK_Connector.i"\
+ "..\..\..\ace\SOCK_Dgram.h"\
+ "..\..\..\ace\SOCK_Dgram.i"\
+ "..\..\..\ace\SOCK_Dgram_Mcast.h"\
+ "..\..\..\ace\SOCK_Dgram_Mcast.i"\
+ "..\..\..\ace\SOCK_IO.h"\
+ "..\..\..\ace\SOCK_IO.i"\
+ "..\..\..\ace\SOCK_Stream.h"\
+ "..\..\..\ace\SOCK_Stream.i"\
+ "..\..\..\ace\SString.h"\
+ "..\..\..\ace\SString.i"\
+ "..\..\..\ace\Strategies.h"\
+ "..\..\..\ace\Strategies.i"\
+ "..\..\..\ace\Strategies_T.cpp"\
+ "..\..\..\ace\Strategies_T.h"\
+ "..\..\..\ace\Strategies_T.i"\
+ "..\..\..\ace\Stream_Modules.cpp"\
+ "..\..\..\ace\Stream_Modules.h"\
+ "..\..\..\ace\Stream_Modules.i"\
+ "..\..\..\ace\streams.h"\
+ "..\..\..\ace\SV_Semaphore_Complex.h"\
+ "..\..\..\ace\SV_Semaphore_Complex.i"\
+ "..\..\..\ace\SV_Semaphore_Simple.h"\
+ "..\..\..\ace\SV_Semaphore_Simple.i"\
+ "..\..\..\ace\Svc_Conf_Tokens.h"\
+ "..\..\..\ace\Svc_Handler.cpp"\
+ "..\..\..\ace\Svc_Handler.h"\
+ "..\..\..\ace\Svc_Handler.i"\
+ "..\..\..\ace\Synch.h"\
+ "..\..\..\ace\Synch.i"\
+ "..\..\..\ace\Synch_Options.h"\
+ "..\..\..\ace\Synch_Options.i"\
+ "..\..\..\ace\Synch_T.cpp"\
+ "..\..\..\ace\Synch_T.h"\
+ "..\..\..\ace\Synch_T.i"\
+ "..\..\..\ace\Task.h"\
+ "..\..\..\ace\Task.i"\
+ "..\..\..\ace\Task_T.cpp"\
+ "..\..\..\ace\Task_T.h"\
+ "..\..\..\ace\Task_T.i"\
+ "..\..\..\ace\Thread.h"\
+ "..\..\..\ace\Thread.i"\
+ "..\..\..\ace\Thread_Manager.h"\
+ "..\..\..\ace\Thread_Manager.i"\
+ "..\..\..\ace\Time_Value.h"\
+ "..\..\..\ace\Timer_Queue.h"\
+ "..\..\..\ace\Timer_Queue_T.cpp"\
+ "..\..\..\ace\Timer_Queue_T.h"\
+ "..\..\..\ace\Timer_Queue_T.i"\
+ "..\..\..\ace\Trace.h"\
+ "..\..\..\ace\WFMO_Reactor.h"\
+ "..\..\..\ace\WFMO_Reactor.i"\
+ "..\..\..\ace\ws2tcpip.h"\
+ "..\..\tao\any.h"\
+ "..\..\tao\any.i"\
+ "..\..\tao\cdr.h"\
+ "..\..\tao\cdr.i"\
+ "..\..\tao\CDR_Interpreter.h"\
+ "..\..\tao\Client_Strategy_Factory.h"\
+ "..\..\tao\corba.h"\
+ "..\..\tao\CurrentC.h"\
+ "..\..\tao\CurrentC.i"\
+ "..\..\tao\debug.h"\
+ "..\..\tao\default_client.h"\
+ "..\..\tao\default_client.i"\
+ "..\..\tao\default_server.h"\
+ "..\..\tao\default_server.i"\
+ "..\..\tao\Environment.h"\
+ "..\..\tao\Environment.i"\
+ "..\..\tao\Exception.h"\
+ "..\..\tao\Exception.i"\
+ "..\..\tao\giop.h"\
+ "..\..\tao\giop.i"\
+ "..\..\tao\Invocation.h"\
+ "..\..\tao\Invocation.i"\
+ "..\..\tao\marshal.h"\
+ "..\..\tao\marshal.i"\
+ "..\..\tao\nvlist.h"\
+ "..\..\tao\NVList.i"\
+ "..\..\tao\object.h"\
+ "..\..\tao\object.i"\
+ "..\..\tao\Object_KeyC.h"\
+ "..\..\tao\Object_KeyC.i"\
+ "..\..\tao\Operation_Table.h"\
+ "..\..\tao\orb.h"\
+ "..\..\tao\ORB.i"\
+ "..\..\tao\orb_core.h"\
+ "..\..\tao\orb_core.i"\
+ "..\..\tao\orbconf.h"\
+ "..\..\tao\params.h"\
+ "..\..\tao\params.i"\
+ "..\..\tao\poa.h"\
+ "..\..\tao\POA.i"\
+ "..\..\tao\POA_CORBA.h"\
+ "..\..\tao\poa_macros.h"\
+ "..\..\tao\poaC.h"\
+ "..\..\tao\poaC.i"\
+ "..\..\tao\poaS.h"\
+ "..\..\tao\poaS.i"\
+ "..\..\tao\PolicyC.h"\
+ "..\..\tao\PolicyC.i"\
+ "..\..\tao\Principal.h"\
+ "..\..\tao\Principal.i"\
+ "..\..\tao\request.h"\
+ "..\..\tao\Request.i"\
+ "..\..\tao\sequence.h"\
+ "..\..\tao\sequence.i"\
+ "..\..\tao\Sequence_T.cpp"\
+ "..\..\tao\Sequence_T.h"\
+ "..\..\tao\Sequence_T.i"\
+ "..\..\tao\servant_base.h"\
+ "..\..\tao\Server_Request.h"\
+ "..\..\tao\Server_Request.i"\
+ "..\..\tao\Server_Strategy_Factory.h"\
+ "..\..\tao\singletons.h"\
+ "..\..\tao\stub.h"\
+ "..\..\tao\stub.i"\
+ "..\..\tao\TAO.h"\
+ "..\..\tao\typecode.h"\
+ "..\..\tao\typecode.i"\
+ "..\..\tao\Union.h"\
+ "..\..\tao\varout.cpp"\
+ "..\..\tao\varout.h"\
+ "..\..\tao\varout.i"\
+ "..\orbsvcs\CosNamingC.h"\
+ "..\orbsvcs\CosNamingC.i"\
+ "..\orbsvcs\CosNamingS.h"\
+ "..\orbsvcs\CosNamingS.i"\
+ "..\orbsvcs\CosNamingS_T.cpp"\
+ "..\orbsvcs\CosNamingS_T.h"\
+ "..\orbsvcs\CosNamingS_T.i"\
+ "..\orbsvcs\IOR_Multicast.h"\
+ "..\orbsvcs\Naming\Entries.h"\
+ "..\orbsvcs\Naming\Naming_Utils.h"\
+ "..\orbsvcs\orbsvcs_export.h"\
+ ".\Naming_Service.h"\
+
+NODEP_CPP_NAMIN=\
+ "..\..\..\ace\sys_conf.h"\
+ "..\..\tao\align.h"\
+ "..\..\tao\connect.h"\
+ "..\..\tao\connect.i"\
+ "..\..\tao\IIOP_Object.h"\
+ "..\..\tao\IIOP_Object.i"\
+ "..\..\tao\IIOP_ORB.h"\
+ "..\..\tao\IIOP_ORB.i"\
+ "..\..\tao\Object_Table.h"\
+ "..\..\tao\ORB_Strategies_T.cpp"\
+ "..\..\tao\ORB_Strategies_T.h"\
+ "..\..\tao\ORB_Strategies_T.i"\
+ "..\orbsvcs\Naming\CosNaming_i.h"\
+
+
+!ELSEIF "$(CFG)" == "Naming_Service - Win32 Alpha Release"
+
+!ENDIF
+
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\CosNaming_i.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Naming_Service.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\NS_CosNaming.h
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/TAO/orbsvcs/Naming_Service/Naming_Service.dsw b/TAO/orbsvcs/Naming_Service/Naming_Service.dsw
index e306b797e57..a9dad4da497 100644
--- a/TAO/orbsvcs/Naming_Service/Naming_Service.dsw
+++ b/TAO/orbsvcs/Naming_Service/Naming_Service.dsw
@@ -1,29 +1,41 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "Naming_Service"=.\Naming_Service.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "NT_Naming_Service"=.\NT_Naming_Service.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "Naming_Service"=.\Naming_Service.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/TAO/orbsvcs/Naming_Service/README b/TAO/orbsvcs/Naming_Service/README
index f309d51bc0f..595fe1d003a 100644
--- a/TAO/orbsvcs/Naming_Service/README
+++ b/TAO/orbsvcs/Naming_Service/README
@@ -1,170 +1,256 @@
// $Id$
-This directory contains the files that implement a server for the TAO
-Naming Service.
-
-To Run:
-======
-
-% Naming_Server [-ORBnameserviceport nsport]
- [-o ior_output_file]
- [-p pid_file_name]
- [-s context_size]
- [-t time]
- [-f persitence_file_name]
-
-Optional Command-line Arguments:
-===============================
- nsport
- Multicast port for listening for requests from
- clients trying to bootstrap to a Naming Service
- through the use of multicast.
-
- output_file
+This directory contains files that implement a server for the TAO
+Naming Service. In addition, it contains files that run the TAO
+Naming Service as a Windows NT Service. Both of these services are
+described below.
+
+How to Run the TAO Naming Service
+=================================
+
+1. Syntax
+
+ % Naming_Server [-ORBNameServicePort nsport]
+ [-o ior_output_file]
+ [-p pid_file_name]
+ [-s context_size]
+ [-t time]
+ [-f persitence_file_name]
+
+2. Optional Command-line Arguments
+
+ -ORBNameServicePort nsport
+ Multicast port for listening for requests from clients
+ trying to bootstrap to a Naming Service through the
+ use of multicast.
+
+ -o ior_output_file
The name of the file, in which to store the IOR of the
root Naming Service context.
- pid_file_name
+ -p pid_file_name
The name of the file, in which to store the process id
of the Naming Service server.
- context_size
- Size of the hash table allocated for
- the root Naming Context (if one is created). All
- contexts created under the root will use the same
- size for their hash tables. The default is 1024.
+ -s context_size
+ Size of the hash table allocated for the root Naming
+ Context (if one is created). All contexts created
+ under the root will use the same size for their hash
+ tables. The default is 1024.
- time
+ -t time
How long (in seconds) the server should listen for
client requests before terminating.
- persistence_file_name
+ -f persistence_file_name
The name of the file to use to store/retrieve
persistent state of the Naming Service. Without this
- option, Naming Service is started in non-persistent mode.
+ option, Naming Service is started in non-persistent
+ mode.
-Environment Variables:
-=====================
+3. Environment Variables
NameServicePort
- Multicast port for listening for requests from
- clients trying to bootstrap to a Naming Service
- through the use of multicast.
-
-Persistence:
-===========
-
-TAO Naming Service has an optional persistence capability. By
-default, the Naming Service is started in a non-persistent mode.
-Supplying "-f" command-line option to the server causes a persistent
-version of the Naming Service to run.
-
-The file specified with the "-f" option is used to store the
-persistent state of the Naming Service, i.e., all Naming Contexts and
-their bindings. When "-f" option is specified:
-
- 1. If the specified file does not exist, it is created
- and used to store the state of the Naming Service. An initial
- (root) Naming Context is also created.
-
- 2. If the specified file exists, it is scanned and:
- a) If any inconsistency is detected in the
- stored state, or the file is not recognized by
- the Naming Service, the server exits. (This
- may happen, for example, if a server or host
- crashed in the middle of writing a record to
- this file on a previous run). A
- noncorrupted version of the file must be used instead.
-
- b) If the file is recognized and is ok, the
- state stored in the file becomes the current state of
- the Naming Service.
-
-
-Implementation Policies:
-=======================
-
-- Destroying Binding Iterators
- A binding iterator is destroyed when client invokes
- <destroy> operation either on the iterator itself or on
- the naming context it is iterating over. In both cases,
- subsequent calls on the binding iterator object will
- cause OBJECT_NOT_EXIST exception.
-
-- Dealing with orphaned contexts
- This implementation of the Naming Service does not
- include any form of 'garbage collection' for orphaned
- naming contexts. It is solely the responsibility of
- clients to clean up after themselves and not leak server
- resources. All the resources, including orphaned
- contexts, are released during the Naming Server
- shutdown.
-
-Clients: ways to bootstrap to the Naming Service:
-================================================
-
-There are several methods for a client to bootstrap to a Naming
-Service, i.e., there are several mechanisms <resolve_initial_references> can use
-when asked for "NameService".
-
- 1. By default (unless other options are specified - see items 2
- and 3 below), ip multicast is used to locate a Naming
- Service. TAO Naming Server is listening for client multicast
- requests on a specified port. On the client side,
- <resolve_initial_references> sends out a multicast request
- on the network, trying to locate a Naming Service. When a
- Naming Server receives a multicast request from a client, it
- replies to the sender with the ior of its root
- Naming Context. Note, the port used for this bootstrapping
- process, i.e., 'multicast port', has nothing to do with the
- ORB port used for CORBA communication. Other points worth
- mentioning:
-
- - A client and a server will only click through this
- multicast protocol if they are using the same multicast
- port. For both client and server -ORBnameserviceport
- command-line option and NameServicePort environment
- variable can be used to specify the multicast port to use.
- If none is specified, the default port is used. (The
- ability to specify multicast ports can be used to match
- certain clients with certain Naming Servers, when there
- are more than one Naming Server running on the network).
-
- - If there are several Naming Servers running on the
- network, each listening on the same port for
- multicast requests, each will send a reply to a client's
- request. The client's orb will use the first response it
- receives, so the Naming Service will, in fact, be selected at
- random.
-
- Since this mechanism is proprietary to TAO (i.e.,
- non-standard), it only works when both client and server are
- written using TAO. There is no way to turn multicasting
- off, but it is used only as a last resort, i.e., any of the
- options below will override it.
-
- When OS platform doesn't support multicast, or client or
- server isn't written using TAO, or a more reliable location
- method is desired, etc., one of the options below can be
- used to bootstrap to the Naming Service.
-
- 2. Command-line option -ORBnameserviceior or environment
- variable NameServiceIOR can be used on the client side to
- specify the object that the call to
- <resolve_initial_references> should return to the client.
- (On the server side, -o option can be used to get the ior).
-
- Example (Unix, same host):
-
- % TAO_ROOT/orbsvcs/Naming_Service -o ior_file
- % my_client -ORBnameserviceior file://ior_file
-
- On the first line, we start the Naming Service, and output
- its ior to <ior_file>. On the second line, we start some
- client, and specify the ior <resolve_initial_references>
- should return for the Naming Service in a file format.
-
- 3. TAO implements Interoperable Naming Service. So, most of the
- initialzation options provided by INS can be used to
- bootstrap to the Naming Service (see TAO's releasenotes for the
- status of INS implementation).
+ Multicast port for listening for requests from clients
+ trying to bootstrap to a Naming Service through the
+ use of multicast.
+
+4. Persistence
+
+ TAO Naming Service has an optional persistence capability. By
+ default, the Naming Service is started in a non-persistent
+ mode. Supplying "-f" command-line option to the server causes
+ a persistent version of the Naming Service to run.
+
+ The file specified with the "-f" option is used to store the
+ persistent state of the Naming Service, i.e., all Naming
+ Contexts and their bindings. When "-f" option is specified:
+
+ 1. If the specified file does not exist, it is created and
+ used to store the state of the Naming Service. An initial
+ (root) Naming Context is also created.
+
+ 2. If the specified file exists, it is scanned and:
+
+ a) If any inconsistency is detected in the stored
+ state, or the file is not recognized by the Naming
+ Service, the server exits. (This may happen, for
+ example, if a server or host crashed in the middle of
+ writing a record to this file on a previous run). A
+ noncorrupted version of the file must be used instead.
+
+ b) If the file is recognized and is ok, the state
+ stored in the file becomes the current state of the
+ Naming Service.
+
+5. Implementation Policies
+
+ a. Destroying Binding Iterators
+
+ A binding iterator is destroyed when client invokes
+ <destroy> operation either on the iterator itself or
+ on the naming context it is iterating over. In both
+ cases, subsequent calls on the binding iterator object
+ will cause OBJECT_NOT_EXIST exception.
+
+ b. Dealing with orphaned contexts
+
+ This implementation of the Naming Service does not
+ include any form of 'garbage collection' for orphaned
+ naming contexts. It is solely the responsibility of
+ clients to clean up after themselves and not leak
+ server resources. All the resources, including
+ orphaned contexts, are released during the Naming
+ Server shutdown.
+
+6. Clients: ways to bootstrap to the Naming Service:
+
+ There are several methods for a client to bootstrap to a
+ Naming Service, i.e., there are several mechanisms
+ <resolve_initial_references> can use when asked for
+ "NameService".
+
+ 1. Multicast
+
+ By default (unless other options are specified - see
+ items 2 and 3 below), ip multicast is used to locate a
+ Naming Service. TAO Naming Server is listening for
+ client multicast requests on a specified port. On the
+ client side, <resolve_initial_references> sends out a
+ multicast request on the network, trying to locate a
+ Naming Service. When a Naming Server receives a
+ multicast request from a client, it replies to the
+ sender with the ior of its root Naming Context. Note,
+ the port used for this bootstrapping process, i.e.,
+ 'multicast port', has nothing to do with the ORB port
+ used for CORBA communication. Other points worth
+ mentioning:
+
+ - A client and a server will only click through this
+ multicast protocol if they are using the same
+ multicast port. For both client and server
+ -ORBnameserviceport command-line option and
+ NameServicePort environment variable can be used to
+ specify the multicast port to use. If none is
+ specified, the default port is used. (The ability
+ to specify multicast ports can be used to match
+ certain clients with certain Naming Servers, when
+ there are more than one Naming Server running on the
+ network).
+
+ - If there are several Naming Servers running on the
+ network, each listening on the same port for
+ multicast requests, each will send a reply to a
+ client's request. The client's orb will use the
+ first response it receives, so the Naming Service
+ will, in fact, be selected at random.
+
+ Since this mechanism is proprietary to TAO (i.e.,
+ non-standard), it only works when both client and
+ server are written using TAO. There is no way to turn
+ multicasting off, but it is used only as a last
+ resort, i.e., any of the options below will override
+ it.
+
+ When OS platform doesn't support multicast, or client
+ or server isn't written using TAO, or a more reliable
+ location method is desired, etc., one of the options
+ below can be used to bootstrap to the Naming Service.
+
+ 2. Command-line options
+
+ The -ORBNameServiceIOR or environment variable
+ NameServiceIOR can be used on the client side to
+ specify the object that the call to
+ <resolve_initial_references> should return to the
+ client. (On the server side, -o option can be used to
+ get the ior).
+
+ Example (Unix, same host):
+
+ % TAO_ROOT/orbsvcs/Naming_Service -o ior_file
+ % my_client -ORBnameserviceior file://ior_file
+
+ On the first line, we start the Naming
+ Service, and output its ior to <ior_file>. On
+ the second line, we start some client, and
+ specify the ior <resolve_initial_references>
+ should return for the Naming Service in a file
+ format.
+
+ 3. Interoperable Naming Service.
+
+ TAO implements the standard CORBA Interoperable Naming
+ Service (ING). Therefore, most initialization options
+ provided by INS can be used to bootstrap to the Naming
+ Service (see TAO's releasenotes for the status of INS
+ implementation).
+
+How to use the NT_Naming_Service
+================================
+
+1. Syntax
+
+ % NT_Naming_Server [-i value]
+ [-r]
+ [-s]
+ [-k]
+ [-t n]
+ [-d]
+
+2. Optional Command-line Arguments
+
+ -i value
+ Install this program as an NT service, with specified startup
+
+ -r
+ Remove this program from the Service Manager
+ -s
+ Start the service
+
+ -k
+ Kill the service
+
+ -t value
+ Set startup for an existing service
+
+ -d
+ Debug; run as a regular application
+
+3. Usage
+
+ To see different stages of an NT service application, you have
+ to run the program several times, with different options.
+ Please note: run with only one option at a time.
+
+ a. First, you must initialize the service in the NT SCM
+ database. Run NT_Naming_Service with -in, where n is one of
+ the following startup options:
+
+ // Start Type (from WinNT.h)
+ //
+ #define SERVICE_SYSTEM_START 0x00000001
+ #define SERVICE_AUTO_START 0x00000002
+ #define SERVICE_DEMAND_START 0x00000003
+ #define SERVICE_DISABLED 0x00000004
+
+ If only -i is specified, SERVICE_AUTO_START is default option.
+
+ b. Now you are ready to run the actual service. Run
+ NT_Naming_Service again, this time with -s option. If the
+ service starts successfully, it will ring the system
+ bell every second or so until the service is stopped.
+
+ c. To stop service execution, run NT_Naming_Service with the
+ -k option.
+
+ d. To remove the service from the Service Control Manager
+ database, run NT_Naming_Service with -r.
+
+ In addition, once you have initialized this service (by using
+ the -i option) you can change its startup type to one of the
+ other values above. To do this, run NT_Naming_Service with
+ -tn option. n is as explained above for -i.
+
+ In order to debug the service's execution itself, use the -d
+ option.