summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-03-12 22:24:16 +0000
committernobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-03-12 22:24:16 +0000
commit5c8978aff6f5cf7a9298d9420ff6e56881bf0308 (patch)
treeabd64444efb01587f10e4b9ae9895f915bc32eb7
parentd6d9bdd2fd80c8eeb76cf18b249f13fde799ac8a (diff)
downloadATCD-5c8978aff6f5cf7a9298d9420ff6e56881bf0308.tar.gz
This commit was manufactured by cvs2svn to create branch
'unlabeled-1.1.2'.
-rw-r--r--TAO/orbsvcs/tests/ImplRepo/Airplane.idl7
-rw-r--r--TAO/orbsvcs/tests/ImplRepo/Nestea.idl16
-rw-r--r--TAO/orbsvcs/tests/ImplRepo/Repository.cpp208
-rw-r--r--TAO/orbsvcs/tests/ImplRepo/Repository.h35
-rw-r--r--TAO/orbsvcs/tests/ImplRepo/airplane_client.cpp21
-rw-r--r--TAO/orbsvcs/tests/ImplRepo/airplane_client_i.h78
-rw-r--r--TAO/orbsvcs/tests/ImplRepo/nestea_client.cpp21
-rw-r--r--TAO/orbsvcs/tests/ImplRepo/nestea_client.dsp208
-rw-r--r--TAO/orbsvcs/tests/ImplRepo/nestea_client_i.h69
-rw-r--r--TAO/orbsvcs/tests/ImplRepo/nestea_server.dsp224
10 files changed, 887 insertions, 0 deletions
diff --git a/TAO/orbsvcs/tests/ImplRepo/Airplane.idl b/TAO/orbsvcs/tests/ImplRepo/Airplane.idl
new file mode 100644
index 00000000000..ecc38afa7c5
--- /dev/null
+++ b/TAO/orbsvcs/tests/ImplRepo/Airplane.idl
@@ -0,0 +1,7 @@
+// $Id$
+
+interface Paper_Airplane_Server
+{
+ string get_plane ();
+ // Returns the plane of the moment.
+};
diff --git a/TAO/orbsvcs/tests/ImplRepo/Nestea.idl b/TAO/orbsvcs/tests/ImplRepo/Nestea.idl
new file mode 100644
index 00000000000..0be9ee1e792
--- /dev/null
+++ b/TAO/orbsvcs/tests/ImplRepo/Nestea.idl
@@ -0,0 +1,16 @@
+// $Id$
+
+interface Nestea_Bookshelf
+{
+ void drink (in long cans);
+ // Add a number of cans to the bookshelf.
+
+ void crush (in long cans);
+ // Crush some of those cans.
+
+ long bookshelf_size ();
+ // How many cans are in the collection?
+
+ string get_praise ();
+ // What does the server think of your collection?
+};
diff --git a/TAO/orbsvcs/tests/ImplRepo/Repository.cpp b/TAO/orbsvcs/tests/ImplRepo/Repository.cpp
new file mode 100644
index 00000000000..0c243356b0c
--- /dev/null
+++ b/TAO/orbsvcs/tests/ImplRepo/Repository.cpp
@@ -0,0 +1,208 @@
+// $Id$
+#include "Repository.h"
+
+// Default Constructor
+Repository::Repository ()
+{
+ this->repository_.open (ACE_Naming_Context::PROC_LOCAL);
+}
+
+// Add a new server to the Repository
+int
+Repository::add (const char *key, const char *comm_line, const char *env, const char *wdir)
+{
+ char *temp; // Temporary string to hold all the variables in.
+
+ // Needs to be as long as all the lengths plus the 2 separators and the
+ // null character.
+ ACE_NEW_RETURN (temp, char [ACE_OS::strlen (comm_line) + ACE_OS::strlen (env)
+ + ACE_OS::strlen (wdir) + 10], -1);
+
+ ACE_OS::sprintf (temp, "%s\n%s\n%s", comm_line, env, wdir);
+
+ // Store the record in the repository.
+ int retval = this->repository_.bind (key, temp);
+
+ // Clean up and exit.
+ delete [] temp;
+
+ return retval;
+}
+
+// Removes the server from the Repository
+int
+Repository::remove (const char *key)
+{
+ return this->repository_.unbind (key);
+}
+
+
+// Find the key record in the Repository
+int
+Repository::resolve (const char *key, char *&comm_line, char *&env, char *&wdir)
+{
+ char *value, *type; // Temp variables needed for resolve
+ char *last, *temp ; // For fields
+ int retval = this->repository_.resolve (key, value, type);
+
+ // If successful, return what we need.
+ while (retval == 0)
+ {
+ temp = value;
+ last = ACE_OS::strstr (temp, "\n");
+ if (last != 0 && *last == '\n')
+ {
+ *last = '\0';
+ ACE_NEW_RETURN (comm_line, char [strlen (temp) + 1], -1);
+
+ // Copy to the comm_line argument
+ strcpy (comm_line, temp);
+ }
+ else
+ {
+ retval = -1;
+ break;
+ }
+
+ temp = last + 1;
+ last = ACE_OS::strstr (temp, "\n");
+ if (last != 0 && *last == '\n')
+ {
+ *last = '\0';
+ ACE_NEW_RETURN (env, char [strlen (temp) + 1], -1);
+
+ // Copy to the env argument
+ strcpy (env, temp);
+ }
+ else
+ {
+ retval = -1;
+ break;
+ }
+
+ temp = last + 1;
+ if (last != 0)
+ {
+ ACE_NEW_RETURN (wdir, char [strlen (temp) + 1], -1);
+
+ // Copy to the env argument
+ strcpy (wdir, temp);
+ }
+ else
+ {
+ retval = -1;
+ break;
+ }
+
+ // Now exit out.
+ break;
+ }
+
+ delete [] value;
+ delete [] type;
+ return retval;
+}
+// = Accessor methods
+
+int
+Repository::get_comm_line (const char *key, char *&comm_line)
+{
+ char *value, *type; // Temp variables needed for resolve
+ char *last, *temp; // For fields
+ int retval = this->repository_.resolve (key, value, type);
+
+ // If successful, return what we need.
+ if (retval == 0)
+ {
+ temp = value;
+ // Null terminate the first field
+ last = ACE_OS::strstr (value, "\n");
+ if (last != 0 && *last == '\n')
+ {
+ *last = '\0';
+ ACE_NEW_RETURN (comm_line, char [strlen (temp) + 1], -1);
+
+ // Copy to the comm_line argument
+ strcpy (comm_line, temp);
+
+ delete [] value;
+ delete [] type;
+ return 0;
+ }
+ else
+ {
+ delete [] value;
+ delete [] type;
+ return -1;
+ }
+ }
+
+ return retval;
+}
+
+
+int
+Repository::get_env (const char *key, char *&env)
+{
+ char *value, *type; // Temp variables needed for resolve
+ char *last, *temp; // For field position
+ int retval = this->repository_.resolve (key, value, type);
+
+ // If successful, return what we need.
+ if (retval == 0)
+ {
+ last = ACE_OS::strstr (value, "\n");
+ temp = last + 1;
+ last = ACE_OS::strstr (temp, "\n");
+
+ if (last != 0 && *last == '\n')
+ {
+ *last = '\0';
+ ACE_NEW_RETURN (env, char [strlen (temp) + 1], -1);
+
+ // Copy to the env argument
+ strcpy (env, temp);
+ delete [] value;
+ delete [] type;
+ return 0;
+ }
+ else
+ {
+ delete [] value;
+ delete [] type;
+ return -1;
+ }
+ }
+
+ return retval;
+}
+
+int
+Repository::get_wdir (const char *key, char *&wdir)
+{
+ char *value, *type; // Temp variables needed for resolve
+ char *last, *temp ; // For fields
+ int retval = this->repository_.resolve (key, value, type);
+
+ // If successful, return what we need.
+ if (retval == 0)
+ {
+ last = ACE_OS::strstr (value, "\n");
+ last = ACE_OS::strstr (last + 1, "\n");
+ temp = last + 1;
+
+ ACE_NEW_RETURN (wdir, char [strlen (temp) + 1], -1);
+
+ // Copy to the wdir argument
+ strcpy (wdir, temp);
+ delete [] value;
+ delete [] type;
+ }
+ return retval;
+}
+
+void
+Repository::dump (void)
+{
+ this->repository_.dump ();
+}
diff --git a/TAO/orbsvcs/tests/ImplRepo/Repository.h b/TAO/orbsvcs/tests/ImplRepo/Repository.h
new file mode 100644
index 00000000000..aa8467e2d2c
--- /dev/null
+++ b/TAO/orbsvcs/tests/ImplRepo/Repository.h
@@ -0,0 +1,35 @@
+// $Id$
+#if !defined (REPOSITORY_H)
+#define REPOSITORY_H
+
+#include "ace/Naming_Context.h"
+
+class Repository
+{
+public:
+ Repository ();
+ // Default Constructor
+
+ int add (const char *key, const char *comm_line, const char *env, const char *wdir);
+ // Add a new server to the Repository
+
+ int remove (const char *key);
+ // Removes the server from the Repository
+
+ int resolve (const char *key, char *&comm_line, char *&env, char *&wdir);
+ // Find the key record in the Repository
+
+ // = Accessor methods
+ int get_comm_line (const char *key, char *&comm_line);
+ int get_env (const char *key, char *&env);
+ int get_wdir (const char *key, char *&wdir);
+
+ // Dump method
+ void dump (void);
+
+private:
+ ACE_Naming_Context repository_;
+};
+
+
+#endif /* REPOSITORY_H */
diff --git a/TAO/orbsvcs/tests/ImplRepo/airplane_client.cpp b/TAO/orbsvcs/tests/ImplRepo/airplane_client.cpp
new file mode 100644
index 00000000000..6d386d2de1e
--- /dev/null
+++ b/TAO/orbsvcs/tests/ImplRepo/airplane_client.cpp
@@ -0,0 +1,21 @@
+// $Id$
+
+#include "airplane_client_i.h"
+
+ACE_RCSID(ImplRepo, airplane_client, "$Id$")
+
+// This function runs the test.
+
+int
+main (int argc, char **argv)
+{
+ Airplane_Client_i client;
+
+ ACE_DEBUG ((LM_DEBUG, "\n\tPaper Airplane Client\n\n"));
+
+ if (client.init (argc, argv) == -1)
+ return 1;
+ else
+ return client.run ();
+}
+
diff --git a/TAO/orbsvcs/tests/ImplRepo/airplane_client_i.h b/TAO/orbsvcs/tests/ImplRepo/airplane_client_i.h
new file mode 100644
index 00000000000..66790adca6d
--- /dev/null
+++ b/TAO/orbsvcs/tests/ImplRepo/airplane_client_i.h
@@ -0,0 +1,78 @@
+// -*- C++ -*-
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO/orbsvcs/tests/ImplRepo
+//
+// = FILENAME
+// airplane_client_i.h
+//
+// = DESCRIPTION
+// This class implements a simple CORBA client which returns a random
+// paper airplane from the paper airplane server.
+//
+// = AUTHORS
+// Darrell Brunsch <brunsch@cs.wustl.edu>
+//
+// ============================================================================
+
+#if !defined (AIRPLANE_CLIENT_I_H)
+#define AIRPLANE_CLIENT_I_H
+
+#include "AirplaneC.h"
+#include "tao/corba.h"
+
+class Airplane_Client_i
+{
+ // = TITLE
+ // Paper Airplane Client Implementation
+ //
+ // = DESCRIPTION
+ // Class wrapper for a client which gets the server IOR and then makes
+ // a couple of calls to the server.
+public:
+ // = Constructor and destructor.
+ Airplane_Client_i (void);
+ ~Airplane_Client_i (void);
+
+ int run ();
+ // Execute client example code.
+
+ int init (int argc, char **argv);
+ // Initialize the client communication endpoint with server.
+
+private:
+ int read_ior (char *filename);
+ // Function to read the server ior from a file.
+
+ int parse_args (void);
+ // Parses the arguments passed on the command line.
+
+ void get_planes (size_t count);
+ // Ask the Paper Airplane Server for <count> planes.
+
+ int argc_;
+ // # of arguments on the command line.
+
+ char **argv_;
+ // arguments from command line.
+
+ char *server_key_;
+ // Key of the obj ref of the server.
+
+ size_t loop_count_;
+ // Number of airplanes to query for.
+
+ CORBA::Environment env_;
+ // Environment variable.
+
+ Paper_Airplane_Server_ptr server_;
+ // Server object ptr.
+
+ CORBA::ORB_var orb_;
+ // Remember our orb.
+};
+
+#endif /* AIRPLANE_CLIENT_I_H */
diff --git a/TAO/orbsvcs/tests/ImplRepo/nestea_client.cpp b/TAO/orbsvcs/tests/ImplRepo/nestea_client.cpp
new file mode 100644
index 00000000000..03e00c6bdd6
--- /dev/null
+++ b/TAO/orbsvcs/tests/ImplRepo/nestea_client.cpp
@@ -0,0 +1,21 @@
+// $Id$
+
+#include "nestea_client_i.h"
+
+ACE_RCSID(ImplRepo, nestea_client, "$Id$")
+
+// This function runs the test.
+
+int
+main (int argc, char **argv)
+{
+ Nestea_Client_i client;
+
+ ACE_DEBUG ((LM_DEBUG, "\n\tNestea Bookshelf Client\n\n"));
+
+ if (client.init (argc, argv) == -1)
+ return 1;
+ else
+ return client.run ();
+}
+
diff --git a/TAO/orbsvcs/tests/ImplRepo/nestea_client.dsp b/TAO/orbsvcs/tests/ImplRepo/nestea_client.dsp
new file mode 100644
index 00000000000..88780a43145
--- /dev/null
+++ b/TAO/orbsvcs/tests/ImplRepo/nestea_client.dsp
@@ -0,0 +1,208 @@
+# Microsoft Developer Studio Project File - Name="Nestea Client" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=Nestea Client - Win32 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 "nestea_client.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 "nestea_client.mak" CFG="Nestea Client - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "Nestea Client - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "Nestea Client - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "Nestea Client - 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 ""
+# 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 "..\..\..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
+# SUBTRACT CPP /YX
+# 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 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 ace.lib TAO.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace"
+
+!ELSEIF "$(CFG)" == "Nestea Client - 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 ""
+# 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 "..\..\..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
+# SUBTRACT CPP /YX
+# 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 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 aced.lib TAOd.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace"
+
+!ENDIF
+
+# Begin Target
+
+# Name "Nestea Client - Win32 Release"
+# Name "Nestea Client - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\nestea_client.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\nestea_client_i.cpp
+# End Source File
+# End Group
+# Begin Group "Generated Source Files"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\NesteaC.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\NesteaS.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\nestea_client_i.h
+# End Source File
+# End Group
+# Begin Group "IDL Files"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\Nestea.idl
+
+!IF "$(CFG)" == "Nestea Client - Win32 Release"
+
+USERDEP__AIRPL="..\..\..\..\bin\Release\tao_idl.exe"
+# Begin Custom Build - Invoking TAO_IDL Compiler
+InputPath=.\Nestea.idl
+InputName=Nestea
+
+BuildCmds= \
+ ..\..\..\..\bin\Release\tao_idl $(InputName).idl
+
+"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ELSEIF "$(CFG)" == "Nestea Client - Win32 Debug"
+
+# PROP Ignore_Default_Tool 1
+USERDEP__AIRPL="..\..\..\..\bin\tao_idl.exe"
+# Begin Custom Build - Invoking TAO_IDL Compiler
+InputPath=.\Nestea.idl
+InputName=Nestea
+
+BuildCmds= \
+ ..\..\..\..\bin\tao_idl -Gi $(InputName).idl
+
+"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ENDIF
+
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/TAO/orbsvcs/tests/ImplRepo/nestea_client_i.h b/TAO/orbsvcs/tests/ImplRepo/nestea_client_i.h
new file mode 100644
index 00000000000..5a428183d36
--- /dev/null
+++ b/TAO/orbsvcs/tests/ImplRepo/nestea_client_i.h
@@ -0,0 +1,69 @@
+// -*- C++ -*-
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO/orbsvcs/tests/ImplRepo
+//
+// = FILENAME
+// nestea_client_i.h
+//
+// = DESCRIPTION
+// This class implements a simple CORBA client which controls a Nestea
+// can database
+//
+// = AUTHORS
+// Darrell Brunsch <brunsch@cs.wustl.edu>
+//
+// ============================================================================
+
+#if !defined (NESTEA_CLIENT_I_H)
+#define NESTEA_CLIENT_I_H
+
+#include "tao/corba.h"
+#include "NesteaC.h"
+
+class Nestea_Client_i
+{
+ // = TITLE
+ // Nestea Bookshelf Client Implementation
+ //
+ // = DESCRIPTION
+ // Class wrapper for a client which gets the server IOR and then makes
+ // a couple of calls to the server.
+public:
+ // = Constructor and destructor.
+ Nestea_Client_i (void);
+ ~Nestea_Client_i (void);
+
+ int run ();
+ // Execute client example code.
+
+ int init (int argc, char **argv);
+ // Initialize the client communication endpoint with server.
+
+private:
+ int read_ior (char *filename);
+ // Function to read the server ior from a file.
+
+ int parse_args (void);
+ // Parses the arguments passed on the command line.
+
+ int argc_;
+ // # of arguments on the command line.
+
+ char **argv_;
+ // arguments from command line.
+
+ char *server_key_;
+ // Key of the obj ref of the server.
+
+ Nestea_Bookshelf_ptr server_;
+ // Server object ptr.
+
+ CORBA::ORB_var orb_;
+ // Remember our orb.
+};
+
+#endif /* Nestea_CLIENT_I_H */
diff --git a/TAO/orbsvcs/tests/ImplRepo/nestea_server.dsp b/TAO/orbsvcs/tests/ImplRepo/nestea_server.dsp
new file mode 100644
index 00000000000..72be10ec8c5
--- /dev/null
+++ b/TAO/orbsvcs/tests/ImplRepo/nestea_server.dsp
@@ -0,0 +1,224 @@
+# Microsoft Developer Studio Project File - Name="Nestea Server" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=Nestea Server - Win32 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 "nestea_server.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 "nestea_server.mak" CFG="Nestea Server - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "Nestea Server - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "Nestea Server - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "Nestea Server - 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 ""
+# 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 "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
+# SUBTRACT CPP /YX
+# 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 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 ace.lib TAO.lib orbsvcs.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\orbsvcs" /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace"
+
+!ELSEIF "$(CFG)" == "Nestea Server - 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 ""
+# 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 "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
+# SUBTRACT CPP /YX
+# 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 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 aced.lib TAOd.lib orbsvcsd.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\orbsvcs" /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace"
+
+!ENDIF
+
+# Begin Target
+
+# Name "Nestea Server - Win32 Release"
+# Name "Nestea Server - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\nestea_i.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\nestea_server.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\nestea_server_i.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\IR_Helper.cpp
+# End Source File
+# End Group
+# Begin Group "Generated Source Files"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\NesteaC.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\NesteaS.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\nestea_i.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\nestea_server_i.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\IR_Helper.h
+# End Source File
+# End Group
+# Begin Group "IDL Files"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\Nestea.idl
+
+!IF "$(CFG)" == "Nestea Server - Win32 Release"
+
+USERDEP__AIRPL="..\..\..\..\bin\Release\tao_idl.exe"
+# Begin Custom Build - Invoking TAO_IDL Compiler
+InputPath=.\Nestea.idl
+InputName=Nestea
+
+BuildCmds= \
+ ..\..\..\..\bin\Release\tao_idl $(InputName).idl
+
+"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ELSEIF "$(CFG)" == "Nestea Server - Win32 Debug"
+
+# PROP Ignore_Default_Tool 1
+USERDEP__AIRPL="..\..\..\..\bin\tao_idl.exe"
+# Begin Custom Build - Invoking TAO_IDL Compiler
+InputPath=.\Nestea.idl
+InputName=Nestea
+
+BuildCmds= \
+ ..\..\..\..\bin\tao_idl -Gi $(InputName).idl
+
+"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ENDIF
+
+# End Source File
+# End Group
+# End Target
+# End Project