diff options
author | Michi Henning <michi@zeroc.com> | 2009-03-10 08:47:17 +1000 |
---|---|---|
committer | Michi Henning <michi@zeroc.com> | 2009-03-10 08:47:17 +1000 |
commit | d015b391e16aeb8a1a36d1ebd14381e5f7f8581a (patch) | |
tree | cb88a40368041dc318f43c5ec2c638f04b2eabf2 /cpp/demo/Ice/nrvo/Client.cpp | |
parent | Fix 3797 Nrvo demo fixes (diff) | |
download | ice-d015b391e16aeb8a1a36d1ebd14381e5f7f8581a.tar.bz2 ice-d015b391e16aeb8a1a36d1ebd14381e5f7f8581a.tar.xz ice-d015b391e16aeb8a1a36d1ebd14381e5f7f8581a.zip |
Bug 3797: nrvo errata
- Edited comments.
- Removed guard for input char around switch statement.
- Added fourth test case to exercise the RVO path of op3.
Diffstat (limited to 'cpp/demo/Ice/nrvo/Client.cpp')
-rw-r--r-- | cpp/demo/Ice/nrvo/Client.cpp | 102 |
1 files changed, 54 insertions, 48 deletions
diff --git a/cpp/demo/Ice/nrvo/Client.cpp b/cpp/demo/Ice/nrvo/Client.cpp index fa9ee78e0b3..a27f7c74267 100644 --- a/cpp/demo/Ice/nrvo/Client.cpp +++ b/cpp/demo/Ice/nrvo/Client.cpp @@ -64,54 +64,59 @@ NrvoClient::run(int argc, char* argv[]) cout << "==> "; cin >> c; - if(c == '1' || c == '2' || c == '3' || c == 's' || c == '?' || c == 'x') - { - switch(c) - { - case '1': - { - cout << "calling op1" << endl; - MyStringSeq seq = nrvo->op1(); - break; - } - - case '2': - { - cout << "calling op2" << endl; - MyStringSeq seq = nrvo->op2(); - break; - } - - case '3': - { - cout << "calling op3" << endl; - MyStringSeq seq = nrvo->op3(10); - break; - } - - case 's': - { - nrvo->shutdown(); - break; - } - - case '?': - { - menu(); - break; - } - - case 'x': - { - break; - } - } - } - else - { - cout << "unknown command `" << c << "'" << endl; - menu(); - } + switch(c) + { + case '1': + { + cout << "calling op1" << endl; + MyStringSeq seq = nrvo->op1(); + break; + } + + case '2': + { + cout << "calling op2" << endl; + MyStringSeq seq = nrvo->op2(); + break; + } + + case '3': + { + cout << "calling op3(10)" << endl; + MyStringSeq seq = nrvo->op3(10); + break; + } + + case '4': + { + cout << "calling op3(0)" << endl; + MyStringSeq seq = nrvo->op3(0); + break; + } + + case 's': + { + nrvo->shutdown(); + break; + } + + case '?': + { + menu(); + break; + } + + case 'x': + { + break; + } + default: + { + cout << "unknown command `" << c << "'" << endl; + menu(); + break; + } + } } catch(const Ice::Exception& ex) { @@ -133,6 +138,7 @@ NrvoClient::menu() "1: return a string sequence\n" "2: return a string sequence that is a data member of the servant\n" "3: return a string sequence from an operation with multiple return paths\n" + "4: return a string sequence from an operation with multiple return paths, using RVO\n" "s: shutdown server\n" "x: exit\n" "?: show this menu\n"; |