diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2011-10-22 01:03:14 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2011-10-22 01:03:14 +0900 |
| commit | d5c8d048efeb524d5d2222b4547f9dd19e943f13 (patch) | |
| tree | 117dd74fff2594be1ee6d6ba00dc9d8c301bf05e /src/RpcMethod.cc | |
| parent | 3832ed97c616eff0057d7a0e5a161c4282537160 (diff) | |
Rewritten OptionParser. Made it simpler and efficient.
Diffstat (limited to 'src/RpcMethod.cc')
| -rw-r--r-- | src/RpcMethod.cc | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/RpcMethod.cc b/src/RpcMethod.cc index 8a49630c..89ae8587 100644 --- a/src/RpcMethod.cc +++ b/src/RpcMethod.cc @@ -93,16 +93,16 @@ void gatherOption (fmt("%s option cannot be used in this context.", optionName.c_str())); } else { - SharedHandle<OptionHandler> optionHandler = - optionParser->findByName(optionName); - if(!optionHandler) { + const Pref* pref = option::k2p(optionName); + const SharedHandle<OptionHandler>& handler = optionParser->find(pref); + if(!handler) { throw DL_ABORT_EX (fmt("We don't know how to deal with %s option", optionName.c_str())); } const String* opval = downcast<String>((*first).second); if(opval) { - optionHandler->parse(*option.get(), opval->s()); + handler->parse(*option.get(), opval->s()); } else { // header and index-out option can take array as value const List* oplist = downcast<List>((*first).second); @@ -112,7 +112,7 @@ void gatherOption eoi = oplist->end(); argiter != eoi; ++argiter) { const String* opval = downcast<String>(*argiter); if(opval) { - optionHandler->parse(*option.get(), opval->s()); + handler->parse(*option.get(), opval->s()); } } } |
