diff options
Diffstat (limited to 'py/demo/Ice/value/Client.py')
-rw-r--r-- | py/demo/Ice/value/Client.py | 240 |
1 files changed, 120 insertions, 120 deletions
diff --git a/py/demo/Ice/value/Client.py b/py/demo/Ice/value/Client.py index 4b1698fc3fe..f779d014868 100644 --- a/py/demo/Ice/value/Client.py +++ b/py/demo/Ice/value/Client.py @@ -29,126 +29,126 @@ class ObjectFactory(Ice.ObjectFactory): class Client(Ice.Application): def run(self, args): - base = self.communicator().propertyToProxy('Value.Initial') - initial = Demo.InitialPrx.checkedCast(base) - if not initial: - print args[0] + ": invalid proxy" - return False - - print '\n'\ - "Let's first transfer a simple object, for a class without\n"\ - "operations, and print its contents. No factory is required\n"\ - "for this.\n"\ - "[press enter]" - raw_input() - - simple = initial.getSimple() - print "==> " + simple.message - - print '\n'\ - "Yes, this worked. Now let's try to transfer an object for a class\n"\ - "with operations as type ::Demo::Printer, without installing a factory\n"\ - "first. This should give us a `no factory' exception.\n"\ - "[press enter]" - raw_input() - - try: - printer, printerProxy = initial.getPrinter() - print args[0] + ": Did not get the expected NoObjectFactoryException!" - sys.exit(false) - except Ice.NoObjectFactoryException, ex: - print "==>", ex - - print '\n'\ - "Yep, that's what we expected. Now let's try again, but with\n"\ - "installing an appropriate factory first. If successful, we print\n"\ - "the object's content.\n"\ - "[press enter]" - raw_input() - - factory = ObjectFactory() - self.communicator().addObjectFactory(factory, "::Demo::Printer") - - printer, printerProxy = initial.getPrinter() - print "==> " + printer.message - - print '\n'\ - "Cool, it worked! Let's try calling the printBackwards() method\n"\ - "on the object we just received locally.\n"\ - "[press enter]" - raw_input() - - print "==>", - printer.printBackwards() - - print '\n'\ - "Now we call the same method, but on the remote object. Watch the\n"\ - "server's output.\n"\ - "[press enter]" - raw_input() - - printerProxy.printBackwards() - - print '\n'\ - "Next, we transfer a derived object from the server as a base\n"\ - "object. Since we haven't yet installed a factory for the derived\n"\ - "class, the derived class (::Demo::DerivedPrinter) is sliced\n"\ - "to its base class (::Demo::Printer).\n"\ - "[press enter]" - raw_input() - - derivedAsBase = initial.getDerivedPrinter() - print "==> The type ID of the received object is \"" + derivedAsBase.ice_id() + "\"" - assert(derivedAsBase.ice_id() == "::Demo::Printer") - - print '\n'\ - "Now we install a factory for the derived class, and try again.\n"\ - "Because we receive the derived object as a base object, we\n"\ - "we need to do a dynamic_cast<> to get from the base to the derived object.\n"\ - "[press enter]" - raw_input() - - self.communicator().addObjectFactory(factory, "::Demo::DerivedPrinter") - - derived = initial.getDerivedPrinter() - print "==> The type ID of the received object is \"" + derived.ice_id() + "\"" - - print '\n'\ - "Let's print the message contained in the derived object, and\n"\ - "call the operation printUppercase() on the derived object\n"\ - "locally.\n"\ - "[press enter]" - raw_input() - - print "==> " + derived.derivedMessage - print "==>", - derived.printUppercase() - - print '\n'\ - "Finally, we try the same again, but instead of returning the\n"\ - "derived object, we throw an exception containing the derived\n"\ - "object.\n"\ - "[press enter]" - raw_input() - - try: - initial.throwDerivedPrinter() - print args[0] + "Did not get the expected DerivedPrinterException!" - sys.exit(false) - except Demo.DerivedPrinterException, ex: - derived = ex.derived - assert(derived) - - print "==> " + derived.derivedMessage - print "==>", - derived.printUppercase() - - print '\n'\ - "That's it for this demo. Have fun with Ice!" - - initial.shutdown() - - return True + base = self.communicator().propertyToProxy('Value.Initial') + initial = Demo.InitialPrx.checkedCast(base) + if not initial: + print args[0] + ": invalid proxy" + return False + + print '\n'\ + "Let's first transfer a simple object, for a class without\n"\ + "operations, and print its contents. No factory is required\n"\ + "for this.\n"\ + "[press enter]" + raw_input() + + simple = initial.getSimple() + print "==> " + simple.message + + print '\n'\ + "Yes, this worked. Now let's try to transfer an object for a class\n"\ + "with operations as type ::Demo::Printer, without installing a factory\n"\ + "first. This should give us a `no factory' exception.\n"\ + "[press enter]" + raw_input() + + try: + printer, printerProxy = initial.getPrinter() + print args[0] + ": Did not get the expected NoObjectFactoryException!" + sys.exit(false) + except Ice.NoObjectFactoryException, ex: + print "==>", ex + + print '\n'\ + "Yep, that's what we expected. Now let's try again, but with\n"\ + "installing an appropriate factory first. If successful, we print\n"\ + "the object's content.\n"\ + "[press enter]" + raw_input() + + factory = ObjectFactory() + self.communicator().addObjectFactory(factory, "::Demo::Printer") + + printer, printerProxy = initial.getPrinter() + print "==> " + printer.message + + print '\n'\ + "Cool, it worked! Let's try calling the printBackwards() method\n"\ + "on the object we just received locally.\n"\ + "[press enter]" + raw_input() + + print "==>", + printer.printBackwards() + + print '\n'\ + "Now we call the same method, but on the remote object. Watch the\n"\ + "server's output.\n"\ + "[press enter]" + raw_input() + + printerProxy.printBackwards() + + print '\n'\ + "Next, we transfer a derived object from the server as a base\n"\ + "object. Since we haven't yet installed a factory for the derived\n"\ + "class, the derived class (::Demo::DerivedPrinter) is sliced\n"\ + "to its base class (::Demo::Printer).\n"\ + "[press enter]" + raw_input() + + derivedAsBase = initial.getDerivedPrinter() + print "==> The type ID of the received object is \"" + derivedAsBase.ice_id() + "\"" + assert(derivedAsBase.ice_id() == "::Demo::Printer") + + print '\n'\ + "Now we install a factory for the derived class, and try again.\n"\ + "Because we receive the derived object as a base object, we\n"\ + "we need to do a dynamic_cast<> to get from the base to the derived object.\n"\ + "[press enter]" + raw_input() + + self.communicator().addObjectFactory(factory, "::Demo::DerivedPrinter") + + derived = initial.getDerivedPrinter() + print "==> The type ID of the received object is \"" + derived.ice_id() + "\"" + + print '\n'\ + "Let's print the message contained in the derived object, and\n"\ + "call the operation printUppercase() on the derived object\n"\ + "locally.\n"\ + "[press enter]" + raw_input() + + print "==> " + derived.derivedMessage + print "==>", + derived.printUppercase() + + print '\n'\ + "Finally, we try the same again, but instead of returning the\n"\ + "derived object, we throw an exception containing the derived\n"\ + "object.\n"\ + "[press enter]" + raw_input() + + try: + initial.throwDerivedPrinter() + print args[0] + "Did not get the expected DerivedPrinterException!" + sys.exit(false) + except Demo.DerivedPrinterException, ex: + derived = ex.derived + assert(derived) + + print "==> " + derived.derivedMessage + print "==>", + derived.printUppercase() + + print '\n'\ + "That's it for this demo. Have fun with Ice!" + + initial.shutdown() + + return True app = Client() sys.exit(app.main(sys.argv, "config.client")) |