summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorMichi Henning <michi@zeroc.com>2004-10-07 04:31:50 +0000
committerMichi Henning <michi@zeroc.com>2004-10-07 04:31:50 +0000
commit7d6338cac0f3d72ac0978f3ab21bd9da1d9a3b87 (patch)
treebbca32eaf2f517149de9f106d11b7229531f640a /cpp
parent*** empty log message *** (diff)
downloadice-7d6338cac0f3d72ac0978f3ab21bd9da1d9a3b87.tar.bz2
ice-7d6338cac0f3d72ac0978f3ab21bd9da1d9a3b87.tar.xz
ice-7d6338cac0f3d72ac0978f3ab21bd9da1d9a3b87.zip
added book demos.
Diffstat (limited to 'cpp')
-rw-r--r--cpp/all.dsw84
-rw-r--r--cpp/demo/Makefile3
-rw-r--r--cpp/demo/book/Makefile22
-rwxr-xr-xcpp/demo/book/printer/Client.cpp46
-rwxr-xr-xcpp/demo/book/printer/Makefile53
-rwxr-xr-xcpp/demo/book/printer/Printer.ice23
-rwxr-xr-xcpp/demo/book/printer/Server.cpp60
-rwxr-xr-xcpp/demo/book/printer/printerC.dsp151
-rwxr-xr-xcpp/demo/book/printer/printerS.dsp150
-rwxr-xr-xcpp/demo/book/simple_filesystem/Client.cpp83
-rwxr-xr-xcpp/demo/book/simple_filesystem/Filesystem.ice31
-rwxr-xr-xcpp/demo/book/simple_filesystem/FilesystemI.cpp89
-rwxr-xr-xcpp/demo/book/simple_filesystem/FilesystemI.h52
-rwxr-xr-xcpp/demo/book/simple_filesystem/Makefile53
-rwxr-xr-xcpp/demo/book/simple_filesystem/Server.cpp76
-rwxr-xr-xcpp/demo/book/simple_filesystem/simplefsC.dsp149
-rwxr-xr-xcpp/demo/book/simple_filesystem/simplefsS.dsp157
17 files changed, 1281 insertions, 1 deletions
diff --git a/cpp/all.dsw b/cpp/all.dsw
index 800a70f1557..cc6c62d4e66 100644
--- a/cpp/all.dsw
+++ b/cpp/all.dsw
@@ -1061,6 +1061,18 @@ Package=<4>
Begin Project Dependency
Project_Dep_Name routerS
End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name printerC
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name printerS
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name simpleFSC
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name simpleFSS
+ End Project Dependency
}}}
###############################################################################
@@ -2547,6 +2559,42 @@ Package=<4>
###############################################################################
+Project: "printerC"=.\demo\book\printer\printerC.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name Ice
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name IceUtil
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "printerS"=.\demo\book\printer\PrinterS.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name Ice
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name IceUtil
+ End Project Dependency
+}}}
+
+###############################################################################
+
Project: "routerC"=.\test\Glacier2\router\routerC.dsp - Package Owner=<4>
Package=<5>
@@ -2652,6 +2700,42 @@ Package=<4>
###############################################################################
+Project: "simpleFSC"=.\demo\book\simple_filesystem\simpleFSC.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name Ice
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name IceUtil
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "simpleFSS"=.\demo\book\simple_filesystem\simpleFSS.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name Ice
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name IceUtil
+ End Project Dependency
+}}}
+
+###############################################################################
+
Project: "simpleIcePackC"=.\demo\IcePack\simple\simpleIcePackC.dsp - Package Owner=<4>
Package=<5>
diff --git a/cpp/demo/Makefile b/cpp/demo/Makefile
index db64f196175..c8dee7dae56 100644
--- a/cpp/demo/Makefile
+++ b/cpp/demo/Makefile
@@ -18,7 +18,8 @@ SUBDIRS = IceUtil \
IceBox \
IcePack \
Glacier \
- Glacier2
+ Glacier2 \
+ book
$(EVERYTHING)::
@for subdir in $(SUBDIRS); \
diff --git a/cpp/demo/book/Makefile b/cpp/demo/book/Makefile
new file mode 100644
index 00000000000..7e97db31948
--- /dev/null
+++ b/cpp/demo/book/Makefile
@@ -0,0 +1,22 @@
+# **********************************************************************
+#
+# Copyright (c) 2003-2004 ZeroC, Inc. All rights reserved.
+#
+# This copy of Ice is licensed to you under the terms described in the
+# ICE_LICENSE file included in this distribution.
+#
+# **********************************************************************
+
+top_srcdir = ../..
+
+include $(top_srcdir)/config/Make.rules
+
+SUBDIRS = printer \
+ simple_filesystem
+
+$(EVERYTHING)::
+ @for subdir in $(SUBDIRS); \
+ do \
+ echo "making $@ in $$subdir"; \
+ ( cd $$subdir && $(MAKE) $@ ) || exit 1; \
+ done
diff --git a/cpp/demo/book/printer/Client.cpp b/cpp/demo/book/printer/Client.cpp
new file mode 100755
index 00000000000..a8e3ce97ee6
--- /dev/null
+++ b/cpp/demo/book/printer/Client.cpp
@@ -0,0 +1,46 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2004 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+#include <Ice/Ice.h>
+#include <Printer.h>
+
+using namespace std;
+using namespace Demo;
+
+int
+main(int argc, char * argv[])
+{
+ int status = 0;
+ Ice::CommunicatorPtr ic;
+ try {
+ ic = Ice::initialize(argc, argv);
+ Ice::ObjectPrx base = ic->stringToProxy(
+ "SimplePrinter:default -p 10000");
+ PrinterPrx printer = PrinterPrx::checkedCast(base);
+ if (!printer)
+ throw "Invalid proxy";
+
+ printer->printString("Hello World!");
+ } catch (const Ice::Exception & ex) {
+ cerr << ex << endl;
+ status = 1;
+ } catch (const char * msg) {
+ cerr << msg << endl;
+ status = 1;
+ }
+ if (ic) {
+ try {
+ ic->destroy();
+ } catch (const Ice::Exception & ex) {
+ cerr << ex << endl;
+ status = 1;
+ }
+ }
+ return status;
+}
diff --git a/cpp/demo/book/printer/Makefile b/cpp/demo/book/printer/Makefile
new file mode 100755
index 00000000000..172b91b4ad8
--- /dev/null
+++ b/cpp/demo/book/printer/Makefile
@@ -0,0 +1,53 @@
+# **********************************************************************
+#
+# Copyright (c) 2003-2004 ZeroC, Inc. All rights reserved.
+#
+# This copy of Ice is licensed to you under the terms described in the
+# ICE_LICENSE file included in this distribution.
+#
+# **********************************************************************
+
+top_srcdir = ../../..
+
+CLIENT = client
+SERVER = server
+
+TARGETS = $(CLIENT) $(SERVER)
+
+SLICE_SRCS = Printer.ice
+
+OBJS = $(SLICE_SRCS:.ice=.o)
+
+COBJS = Client.o
+
+SOBJS = Server.o
+
+SRCS = $(OBJS:.o=.cpp) \
+ $(COBJS:.o=.cpp) \
+ $(SOBJS:.o=.cpp)
+
+SLICE_GEN = $(SLICE_SRCS:.ice=.cpp) $(SLICE_SRCS:.ice=.h)
+
+include $(top_srcdir)/config/Make.rules
+
+CPPFLAGS := -I. $(CPPFLAGS)
+
+$(CLIENT): $(OBJS) $(COBJS)
+ rm -f $@
+ $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(COBJS) $(LIBS)
+
+$(SERVER): $(OBJS) $(SOBJS)
+ rm -f $@
+ $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(SOBJS) $(LIBS)
+
+$(SLICE_GEN): $(SLICE_SRCS) $(SLICE2CPP)
+ rm -f $(SLICE_GEN)
+ $(SLICE2CPP) $(SLICE_SRCS)
+
+test::
+
+clean::
+ rm -f $(SLICE_GEN)
+ rm -fr Debug Release *.opt *.plg *.ncb *.vcproj
+
+include .depend
diff --git a/cpp/demo/book/printer/Printer.ice b/cpp/demo/book/printer/Printer.ice
new file mode 100755
index 00000000000..4ab5497ccc7
--- /dev/null
+++ b/cpp/demo/book/printer/Printer.ice
@@ -0,0 +1,23 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2004 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+#ifndef SIMPLE_ICE
+#define SIMPLE_ICE
+
+module Demo
+{
+
+ interface Printer
+ {
+ void printString(string s);
+ };
+
+};
+
+#endif
diff --git a/cpp/demo/book/printer/Server.cpp b/cpp/demo/book/printer/Server.cpp
new file mode 100755
index 00000000000..66148d83e40
--- /dev/null
+++ b/cpp/demo/book/printer/Server.cpp
@@ -0,0 +1,60 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2004 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+#include <Ice/Ice.h>
+#include <Printer.h>
+
+using namespace std;
+using namespace Demo;
+
+class PrinterI : public Printer {
+public:
+ virtual void printString(const string & s,
+ const Ice::Current &);
+};
+
+void
+PrinterI::
+printString(const string & s, const Ice::Current &)
+{
+ cout << s << endl;
+}
+
+int
+main(int argc, char* argv[])
+{
+ int status = 0;
+ Ice::CommunicatorPtr ic;
+ try {
+ ic = Ice::initialize(argc, argv);
+ Ice::ObjectAdapterPtr adapter
+ = ic->createObjectAdapterWithEndpoints(
+ "SimplePrinterAdapter", "default -p 10000");
+ Ice::ObjectPtr object = new PrinterI;
+ adapter->add(object,
+ Ice::stringToIdentity("SimplePrinter"));
+ adapter->activate();
+ ic->waitForShutdown();
+ } catch (const Ice::Exception & e) {
+ cerr << e << endl;
+ status = 1;
+ } catch (const char * msg) {
+ cerr << msg << endl;
+ status = 1;
+ }
+ if (ic) {
+ try {
+ ic->destroy();
+ } catch (const Ice::Exception & e) {
+ cerr << e << endl;
+ status = 1;
+ }
+ }
+ return status;
+}
diff --git a/cpp/demo/book/printer/printerC.dsp b/cpp/demo/book/printer/printerC.dsp
new file mode 100755
index 00000000000..530afd1b5f0
--- /dev/null
+++ b/cpp/demo/book/printer/printerC.dsp
@@ -0,0 +1,151 @@
+# Microsoft Developer Studio Project File - Name="printerC" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=printerC - 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 "printerC.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 "printerC.mak" CFG="printerC - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "printerC - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "printerC - 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)" == "printerC - 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 /WX /GR /GX /O2 /I "." /I "../../../include" /I "dummyinclude" /D "NDEBUG" /D "_CONSOLE" /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 /nologo /subsystem:console /machine:I386
+# ADD LINK32 /nologo /subsystem:console /machine:I386 /out:"Release/client.exe" /libpath:"../../../lib"
+
+!ELSEIF "$(CFG)" == "printerC - 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 "Debug"
+# 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 /GZ /c
+# ADD CPP /nologo /MDd /W3 /WX /Gm /GR /GX /Zi /Od /I "." /I "../../../include" /D "_DEBUG" /D "_CONSOLE" /FD /GZ /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 /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 /nologo /subsystem:console /debug /machine:I386 /out:"client.exe" /pdbtype:sept /libpath:"../../../lib"
+
+!ENDIF
+
+# Begin Target
+
+# Name "printerC - Win32 Release"
+# Name "printerC - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\Client.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Printer.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\Printer.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\Printer.ice
+
+!IF "$(CFG)" == "printerC - Win32 Release"
+
+USERDEP__PRINT="../../../../ice/bin/slice2cpp.exe"
+# Begin Custom Build
+InputPath=.\Printer.ice
+
+BuildCmds= \
+ ..\..\..\bin\slice2cpp.exe -I../../../slice Printer.ice
+
+"Printer.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"Printer.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ELSEIF "$(CFG)" == "printerC - Win32 Debug"
+
+USERDEP__PRINT="..\..\..\..\ice\bin\slice2cpp.exe"
+# Begin Custom Build
+InputPath=.\Printer.ice
+
+BuildCmds= \
+ ..\..\..\bin\slice2cpp.exe -I../../../slice Printer.ice
+
+"Printer.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"Printer.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ENDIF
+
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/cpp/demo/book/printer/printerS.dsp b/cpp/demo/book/printer/printerS.dsp
new file mode 100755
index 00000000000..d599b2b66ad
--- /dev/null
+++ b/cpp/demo/book/printer/printerS.dsp
@@ -0,0 +1,150 @@
+# Microsoft Developer Studio Project File - Name="printerS" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=printerS - 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 "PrinterS.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 "PrinterS.mak" CFG="printerS - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "printerS - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "printerS - 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)" == "printerS - 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 /WX /GR /GX /O2 /I "." /I "../../../../ice/include" /D "NDEBUG" /D "_CONSOLE" /D "_UNICODE" /YX /FD /c
+# 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 /nologo /subsystem:console /machine:I386 /out:"Release/server.exe" /libpath:"../../../lib"
+
+!ELSEIF "$(CFG)" == "printerS - 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 "Debug"
+# 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 /GZ /c
+# ADD CPP /nologo /MDd /W3 /WX /Gm /GR /GX /Zi /Od /I "." /I "../../../include" /D "_DEBUG" /D "_CONSOLE" /FD /GZ /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 /nologo /subsystem:console /debug /machine:I386 /out:"server.exe" /pdbtype:sept /libpath:"../../../lib"
+
+!ENDIF
+
+# Begin Target
+
+# Name "printerS - Win32 Release"
+# Name "printerS - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\Printer.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Server.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\Printer.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# Begin Source File
+
+SOURCE=.\Printer.ice
+
+!IF "$(CFG)" == "printerS - Win32 Release"
+
+USERDEP__PRINT="..\..\..\..\ice\bin\slice2cpp.exe"
+# Begin Custom Build
+InputPath=.\Printer.ice
+
+BuildCmds= \
+ ..\..\..\bin\slice2cpp.exe -I../../../slice Printer.ice
+
+"Printer.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"Printer.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ELSEIF "$(CFG)" == "printerS - Win32 Debug"
+
+USERDEP__PRINT="..\..\..\..\ice\bin\slice2cpp.exe"
+# Begin Custom Build
+InputPath=.\Printer.ice
+
+BuildCmds= \
+ ..\..\..\bin\slice2cpp.exe -I../../../slice Printer.ice
+
+"Printer.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"Printer.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ENDIF
+
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/cpp/demo/book/simple_filesystem/Client.cpp b/cpp/demo/book/simple_filesystem/Client.cpp
new file mode 100755
index 00000000000..3d9a5afb06f
--- /dev/null
+++ b/cpp/demo/book/simple_filesystem/Client.cpp
@@ -0,0 +1,83 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2004 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+#include <Ice/Ice.h>
+#include <Filesystem.h>
+#include <iostream>
+#include <iterator>
+
+using namespace std;
+using namespace Filesystem;
+
+// Recursively print the contents of directory "dir" in tree fashion.
+// For files, show the contents of each file. The "depth"
+// parameter is the current nesting level (for indentation).
+
+static void
+listRecursive(const DirectoryPrx & dir, int depth = 0)
+{
+ string indent(++depth, '\t');
+
+ NodeSeq contents = dir->list();
+
+ for (NodeSeq::const_iterator i = contents.begin(); i != contents.end(); ++i) {
+ DirectoryPrx dir = DirectoryPrx::checkedCast(*i);
+ FilePrx file = FilePrx::uncheckedCast(*i);
+ cout << indent << (*i)->name() << (dir ? " (directory):" : " (file):") << endl;
+ if (dir) {
+ listRecursive(dir, depth);
+ } else {
+ Lines text = file->read();
+ for (Lines::const_iterator j = text.begin(); j != text.end(); ++j)
+ cout << indent << "\t" << *j << endl;
+ }
+ }
+}
+
+int
+main(int argc, char * argv[])
+{
+ int status = 0;
+ Ice::CommunicatorPtr ic;
+ try {
+ // Create a communicator
+ //
+ ic = Ice::initialize(argc, argv);
+
+ // Create a proxy for the root directory
+ //
+ Ice::ObjectPrx base = ic->stringToProxy("RootDir:default -p 10000");
+ if (!base)
+ throw "Could not create proxy";
+
+ // Down-cast the proxy to a Directory proxy
+ //
+ DirectoryPrx rootDir = DirectoryPrx::checkedCast(base);
+ if (!rootDir)
+ throw "Invalid proxy";
+
+ // Recursively list the contents of the root directory
+ //
+ cout << "Contents of root directory:" << endl;
+ listRecursive(rootDir);
+ } catch (const Ice::Exception & ex) {
+ cerr << ex << endl;
+ status = 1;
+ } catch (const char * msg) {
+ cerr << msg << endl;
+ status = 1;
+ }
+
+ // Clean up
+ //
+ if (ic)
+ ic->destroy();
+
+ return status;
+}
diff --git a/cpp/demo/book/simple_filesystem/Filesystem.ice b/cpp/demo/book/simple_filesystem/Filesystem.ice
new file mode 100755
index 00000000000..3d98b2b5c5f
--- /dev/null
+++ b/cpp/demo/book/simple_filesystem/Filesystem.ice
@@ -0,0 +1,31 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2004 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+module Filesystem {
+ exception GenericError {
+ string reason;
+ };
+
+ interface Node {
+ nonmutating string name();
+ };
+
+ sequence<string> Lines;
+
+ interface File extends Node {
+ nonmutating Lines read();
+ idempotent void write(Lines text) throws GenericError;
+ };
+
+ sequence<Node*> NodeSeq;
+
+ interface Directory extends Node {
+ nonmutating NodeSeq list();
+ };
+};
diff --git a/cpp/demo/book/simple_filesystem/FilesystemI.cpp b/cpp/demo/book/simple_filesystem/FilesystemI.cpp
new file mode 100755
index 00000000000..15d3995237e
--- /dev/null
+++ b/cpp/demo/book/simple_filesystem/FilesystemI.cpp
@@ -0,0 +1,89 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2004 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+#include <FilesystemI.h>
+#include <IceUtil/UUID.h>
+#include <time.h>
+
+using namespace std;
+
+Ice::ObjectAdapterPtr Filesystem::NodeI::_adapter; // static member
+
+// Slice Node::name() operation
+
+std::string
+Filesystem::NodeI::name(const Ice::Current &) const
+{
+ return _name;
+}
+
+// NodeI constructor
+
+Filesystem::NodeI::NodeI(const string & name, const DirectoryIPtr & parent) : _name(name), _parent(parent)
+{
+ // Create an identity. The parent has the fixed identity "/"
+ //
+ Ice::Identity myID = Ice::stringToIdentity(parent ? IceUtil::generateUUID() : "RootDir");
+
+ // Create a proxy for the new node and add it as a child to the parent
+ //
+ NodePrx thisNode = NodePrx::uncheckedCast(_adapter->createProxy(myID));
+ if (parent)
+ parent->addChild(thisNode);
+
+ // Activate the servant
+ //
+ _adapter->add(this, myID);
+}
+
+// Slice File::read() operation
+
+Filesystem::Lines
+Filesystem::FileI::read(const Ice::Current &) const
+{
+ return _lines;
+}
+
+// Slice File::write() operation
+
+void
+Filesystem::FileI::write(const Filesystem::Lines & text,
+ const Ice::Current &)
+{
+ _lines = text;
+}
+
+// FileI constructor
+
+Filesystem::FileI::FileI(const string & name, const DirectoryIPtr & parent) : NodeI(name, parent)
+{
+}
+
+// Slice Directory::list() operation
+
+Filesystem::NodeSeq
+Filesystem::DirectoryI::list(const Ice::Current &) const
+{
+ return _contents;
+}
+
+// DirectoryI constructor
+
+Filesystem::DirectoryI::DirectoryI(const string & name, const DirectoryIPtr & parent) : NodeI(name, parent)
+{
+}
+
+// addChild is called by the child in order to add
+// itself to the _contents member of the parent
+
+void
+Filesystem::DirectoryI::addChild(const NodePrx child)
+{
+ _contents.push_back(child);
+}
diff --git a/cpp/demo/book/simple_filesystem/FilesystemI.h b/cpp/demo/book/simple_filesystem/FilesystemI.h
new file mode 100755
index 00000000000..305f0a5412a
--- /dev/null
+++ b/cpp/demo/book/simple_filesystem/FilesystemI.h
@@ -0,0 +1,52 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2004 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+#ifndef __FilesystemI_h__
+#define __FilesystemI_h__
+
+#include <Ice/Ice.h>
+#include <Filesystem.h>
+
+namespace Filesystem {
+ class DirectoryI;
+ typedef IceUtil::Handle<DirectoryI> DirectoryIPtr;
+
+ class NodeI : virtual public Node {
+ public:
+ virtual std::string name(const Ice::Current &) const;
+ NodeI(const std::string &, const DirectoryIPtr & parent);
+ static Ice::ObjectAdapterPtr _adapter;
+ private:
+ const std::string _name;
+ DirectoryIPtr _parent;
+ };
+
+ class FileI : virtual public File,
+ virtual public Filesystem::NodeI {
+ public:
+ virtual Filesystem::Lines read(const Ice::Current &) const;
+ virtual void write(const Filesystem::Lines &,
+ const Ice::Current &);
+ FileI(const std::string &, const DirectoryIPtr &);
+ private:
+ Lines _lines;
+ };
+
+ class DirectoryI : virtual public Directory,
+ virtual public Filesystem::NodeI {
+ public:
+ virtual Filesystem::NodeSeq list(const Ice::Current &) const;
+ DirectoryI(const std::string &, const DirectoryIPtr &);
+ void addChild(NodePrx child);
+ private:
+ NodeSeq _contents;
+ };
+}
+
+#endif
diff --git a/cpp/demo/book/simple_filesystem/Makefile b/cpp/demo/book/simple_filesystem/Makefile
new file mode 100755
index 00000000000..a44fedb9b3b
--- /dev/null
+++ b/cpp/demo/book/simple_filesystem/Makefile
@@ -0,0 +1,53 @@
+# **********************************************************************
+#
+# Copyright (c) 2003-2004 ZeroC, Inc. All rights reserved.
+#
+# This copy of Ice is licensed to you under the terms described in the
+# ICE_LICENSE file included in this distribution.
+#
+# **********************************************************************
+
+top_srcdir = ../../..
+
+CLIENT = client
+SERVER = server
+
+TARGETS = $(CLIENT) $(SERVER)
+
+SLICE_SRCS = Filesystem.ice
+
+OBJS = $(SLICE_SRCS:.ice=.o)
+
+COBJS = Client.o
+
+SOBJS = Server.o FilesystemI.o
+
+SRCS = $(OBJS:.o=.cpp) \
+ $(COBJS:.o=.cpp) \
+ $(SOBJS:.o=.cpp)
+
+SLICE_GEN = $(SLICE_SRCS:.ice=.cpp) $(SLICE_SRCS:.ice=.h)
+
+include $(top_srcdir)/config/Make.rules
+
+CPPFLAGS := -I. $(CPPFLAGS)
+
+$(CLIENT): $(OBJS) $(COBJS)
+ rm -f $@
+ $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(COBJS) $(LIBS)
+
+$(SERVER): $(OBJS) $(SOBJS)
+ rm -f $@
+ $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(SOBJS) $(LIBS)
+
+$(SLICE_GEN): $(SLICE_SRCS) $(SLICE2CPP)
+ rm -f $(SLICE_GEN)
+ $(SLICE2CPP) $(SLICE_SRCS)
+
+test::
+
+clean::
+ rm -f $(SLICE_GEN)
+ rm -fr Debug Release *.opt *.plg *.ncb *.vcproj
+
+include .depend
diff --git a/cpp/demo/book/simple_filesystem/Server.cpp b/cpp/demo/book/simple_filesystem/Server.cpp
new file mode 100755
index 00000000000..25475520af5
--- /dev/null
+++ b/cpp/demo/book/simple_filesystem/Server.cpp
@@ -0,0 +1,76 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2004 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+#include <Ice/Application.h>
+#include <FilesystemI.h>
+
+using namespace std;
+using namespace Filesystem;
+
+class FilesystemApp : virtual public Ice::Application {
+public:
+ virtual int run(int, char * []) {
+ // Terminate cleanly on receipt of a signal
+ //
+ shutdownOnInterrupt();
+
+ // Create an object adapter (stored in the NodeI::_adapter
+ // static member)
+ //
+ NodeI::_adapter =
+ communicator()->createObjectAdapterWithEndpoints(
+ "SimpleFilesystem", "default -p 10000");
+
+ // Create the root directory (with name "/" and no parent)
+ //
+ DirectoryIPtr root = new DirectoryI("/", 0);
+
+ // Create a file called "README" in the root directory
+ //
+ FilePtr file = new FileI("README", root);
+ Lines text;
+ text.push_back("This file system contains a collection of poetry.");
+ file->write(text);
+
+ // Create a directory called "Coleridge" in the root directory
+ //
+ DirectoryIPtr coleridge = new DirectoryI("Coleridge", root);
+
+ // Create a file called "Kubla_Khan" in the Coleridge directory
+ //
+ file = new FileI("Kubla_Khan", coleridge);
+ text.erase(text.begin(), text.end());
+ text.push_back("In Xanadu did Kubla Khan");
+ text.push_back("A stately pleasure-dome decree:");
+ text.push_back("Where Alph, the sacred river, ran");
+ text.push_back("Through caverns measureless to man");
+ text.push_back("Down to a sunless sea.");
+ file->write(text);
+
+ // All objects are created, allow client requests now
+ //
+ NodeI::_adapter->activate();
+
+ // Wait until we are done
+ //
+ communicator()->waitForShutdown();
+ if (interrupted()) {
+ cerr << appName()
+ << ": received signal, shutting down" << endl;
+ }
+ return 0;
+ };
+};
+
+int
+main(int argc, char* argv[])
+{
+ FilesystemApp app;
+ return app.main(argc, argv);
+}
diff --git a/cpp/demo/book/simple_filesystem/simplefsC.dsp b/cpp/demo/book/simple_filesystem/simplefsC.dsp
new file mode 100755
index 00000000000..1756d68b53b
--- /dev/null
+++ b/cpp/demo/book/simple_filesystem/simplefsC.dsp
@@ -0,0 +1,149 @@
+# Microsoft Developer Studio Project File - Name="simpleFSC" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=simpleFSC - 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 "simpleFSC.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 "simpleFSC.mak" CFG="simpleFSC - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "simpleFSC - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "simpleFSC - 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)" == "simpleFSC - 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 /WX /GR /GX /O2 /I "." /I "../../../../ice/include" /D "NDEBUG" /D "_CONSOLE" /D "_UNICODE" /YX /FD /c
+# 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 /nologo /subsystem:console /machine:I386 /out:"Release/client.exe" /libpath:"../../../lib"
+
+!ELSEIF "$(CFG)" == "simpleFSC - 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 "Debug"
+# 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 /GZ /c
+# ADD CPP /nologo /MDd /W3 /WX /Gm /GR /GX /Zi /Od /I "." /I "../../../../ice/include" /D "_DEBUG" /D "_CONSOLE" /D "_UNICODE" /Fp"Debug/Filesystem.pch" /YX /FD /GZ /c
+# 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 /nologo /subsystem:console /debug /machine:I386 /out:"Debug/client.exe" /pdbtype:sept /libpath:"../../../lib"
+
+!ENDIF
+
+# Begin Target
+
+# Name "simpleFSC - Win32 Release"
+# Name "simpleFSC - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\Client.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Filesystem.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\Filesystem.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\Filesystem.ice
+
+!IF "$(CFG)" == "simpleFSC - Win32 Release"
+
+USERDEP__FILES="../../../../ice/bin/slice2cpp.exe"
+# Begin Custom Build
+InputPath=.\Filesystem.ice
+
+BuildCmds= \
+ ..\..\..\bin\slice2cpp.exe Filesystem.ice
+
+"Filesystem.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"Filesystem.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ELSEIF "$(CFG)" == "simpleFSC - Win32 Debug"
+
+USERDEP__FILES="..\..\..\..\ice\bin\slice2cpp.exe"
+# Begin Custom Build
+InputPath=.\Filesystem.ice
+
+BuildCmds= \
+ ..\..\..\bin\slice2cpp.exe Filesystem.ice
+
+"Filesystem.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"Filesystem.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ENDIF
+
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/cpp/demo/book/simple_filesystem/simplefsS.dsp b/cpp/demo/book/simple_filesystem/simplefsS.dsp
new file mode 100755
index 00000000000..5e0f0cf9ea5
--- /dev/null
+++ b/cpp/demo/book/simple_filesystem/simplefsS.dsp
@@ -0,0 +1,157 @@
+# Microsoft Developer Studio Project File - Name="simpleFSS" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=simpleFSS - 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 "simpleFSS.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 "simpleFSS.mak" CFG="simpleFSS - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "simpleFSS - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "simpleFSS - 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)" == "simpleFSS - 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 /WX /GR /GX /O2 /I "." /I "../../../../ice/include" /D "NDEBUG" /D "_CONSOLE" /D "_UNICODE" /YX /FD /c
+# 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 /nologo /subsystem:console /machine:I386 /out:"Release/server.exe" /libpath:"../../../lib"
+
+!ELSEIF "$(CFG)" == "simpleFSS - 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 "Debug"
+# 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 /GZ /c
+# ADD CPP /nologo /MDd /W3 /WX /Gm /GR /GX /Zi /Od /I "." /I "../../../../ice/include" /D "_DEBUG" /D "_CONSOLE" /D "_UNICODE" /Fp"Debug/Filesystem.pch" /YX /FD /GZ /c
+# 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 /nologo /subsystem:console /debug /machine:I386 /out:"Debug/server.exe" /pdbtype:sept /libpath:"../../../lib"
+
+!ENDIF
+
+# Begin Target
+
+# Name "simpleFSS - Win32 Release"
+# Name "simpleFSS - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\Filesystem.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\FilesystemI.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Server.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\Filesystem.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\FilesystemI.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# Begin Source File
+
+SOURCE=.\Filesystem.ice
+
+!IF "$(CFG)" == "simpleFSS - Win32 Release"
+
+USERDEP__FILES="..\..\..\..\ice\bin\slice2cpp.exe"
+# Begin Custom Build
+InputPath=.\Filesystem.ice
+
+BuildCmds= \
+ ..\..\..\bin\slice2cpp.exe Filesystem.ice
+
+"Filesystem.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"Filesystem.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ELSEIF "$(CFG)" == "simpleFSS - Win32 Debug"
+
+USERDEP__FILES="..\..\..\..\ice\bin\slice2cpp.exe"
+# Begin Custom Build
+InputPath=.\Filesystem.ice
+
+BuildCmds= \
+ ..\..\..\bin\slice2cpp.exe Filesystem.ice
+
+"Filesystem.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"Filesystem.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ENDIF
+
+# End Source File
+# End Group
+# End Target
+# End Project