diff options
Diffstat (limited to 'cpp/demo/book/printer/Server.cpp')
-rwxr-xr-x | cpp/demo/book/printer/Server.cpp | 60 |
1 files changed, 60 insertions, 0 deletions
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; +} |