diff options
Diffstat (limited to 'cpp/demo/Ice/value/ValueI.cpp')
-rw-r--r-- | cpp/demo/Ice/value/ValueI.cpp | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/cpp/demo/Ice/value/ValueI.cpp b/cpp/demo/Ice/value/ValueI.cpp new file mode 100644 index 00000000000..c1982a9d788 --- /dev/null +++ b/cpp/demo/Ice/value/ValueI.cpp @@ -0,0 +1,77 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2011 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 <ValueI.h> + +using namespace std; +using namespace Demo; + +InitialI::InitialI(const Ice::ObjectAdapterPtr& adapter) : + _simple(new Simple), + _printer(new PrinterI), + _printerProxy(PrinterPrx::uncheckedCast(adapter->addWithUUID(_printer))), + _derivedPrinter(new DerivedPrinterI) +{ + _simple->message = "a message 4 u"; + _printer->message = "Ice rulez!"; + _derivedPrinter->message = _printer->message; + _derivedPrinter->derivedMessage = "a derived message 4 u"; +} + +SimplePtr +InitialI::getSimple(const Ice::Current&) +{ + return _simple; +} + +void +InitialI::getPrinter(PrinterPtr& impl, PrinterPrx& proxy, const Ice::Current&) +{ + impl = _printer; + proxy = _printerProxy; +} + +PrinterPtr +InitialI::getDerivedPrinter(const Ice::Current&) +{ + return _derivedPrinter; +} + +void +InitialI::throwDerivedPrinter(const Ice::Current&) +{ + DerivedPrinterException ex; + ex.derived = _derivedPrinter; + throw ex; +} + +void +InitialI::shutdown(const Ice::Current& current) +{ + current.adapter->getCommunicator()->shutdown(); +} + +void +PrinterI::printBackwards(const Ice::Current&) +{ + string s; + s.resize(message.length()); + reverse_copy(message.begin(), message.end(), s.begin()); + cout << s << endl; +} + +void +DerivedPrinterI::printUppercase(const Ice::Current&) +{ + string s; + s.resize(derivedMessage.length()); + transform(derivedMessage.begin(), derivedMessage.end(), s.begin(), ::toupper); + cout << s << endl; +} |