If dictionary not found, exit with exception
authorEduardo Ramos Testillano <eduardo.ramos.testillano@ericsson.com>
Sat, 11 Apr 2015 16:10:32 +0000 (18:10 +0200)
committerEduardo Ramos Testillano <eduardo.ramos.testillano@ericsson.com>
Sat, 11 Apr 2015 16:10:32 +0000 (18:10 +0200)
example/diameter/launcher/main.cpp

index f03a832..301ab34 100644 (file)
@@ -1477,42 +1477,39 @@ throw(anna::RuntimeException) {
   // Stack:
   anna::diameter::codec::Engine *codecEngine = new anna::diameter::codec::Engine();
   anna::diameter::stack::Engine &stackEngine = anna::diameter::stack::Engine::instantiate();
-
-  try {
-    anna::diameter::stack::Dictionary * d = stackEngine.createDictionary(0 /* stack id; its value don't mind, is not used (ADL is monostack) */);
-    // Analyze comma-separated list:
-    anna::Tokenizer lst;
-    std::string dictionaryParameter = cl.getValue("dictionary");
-    lst.apply(dictionaryParameter, ",");
-
-    if(lst.size() >= 1) {  // always true (at least one, because -dictionary is mandatory)
-      anna::Tokenizer::const_iterator tok_min(lst.begin());
-      anna::Tokenizer::const_iterator tok_max(lst.end());
-      anna::Tokenizer::const_iterator tok_iter;
-      std::string pathFile;
-      d->allowUpdates();
-
-      for(tok_iter = tok_min; tok_iter != tok_max; tok_iter++) {
-        pathFile = anna::Tokenizer::data(tok_iter);
-        d->load(pathFile);
-      }
+  anna::diameter::stack::Dictionary * d = stackEngine.createDictionary(0 /* stack id; its value don't mind, is not used (ADL is monostack) */);
+  // Analyze comma-separated list:
+  anna::Tokenizer lst;
+  std::string dictionaryParameter = cl.getValue("dictionary");
+  lst.apply(dictionaryParameter, ",");
+
+  if(lst.size() >= 1) {  // always true (at least one, because -dictionary is mandatory)
+    anna::Tokenizer::const_iterator tok_min(lst.begin());
+    anna::Tokenizer::const_iterator tok_max(lst.end());
+    anna::Tokenizer::const_iterator tok_iter;
+    std::string pathFile;
+    d->allowUpdates();
+
+    for(tok_iter = tok_min; tok_iter != tok_max; tok_iter++) {
+      pathFile = anna::Tokenizer::data(tok_iter);
+      d->load(pathFile);
     }
+  }
 
-    codecEngine->setDictionary(d);
-    LOGDEBUG(anna::Logger::debug(codecEngine->asString(), ANNA_FILE_LOCATION));
+  codecEngine->setDictionary(d);
+  LOGDEBUG(anna::Logger::debug(codecEngine->asString(), ANNA_FILE_LOCATION));
 
-    if(lst.size() > 1) {
-      std::string all_in_one = "./dictionary-all-in-one.xml";
-      std::ofstream out(all_in_one.c_str(), std::ifstream::out);
-      std::string buffer = d->asXMLString();
-      out.write(buffer.c_str(), buffer.size());
-      out.close();
-      std::cout << "Written accumulated '" << all_in_one << "' (provide it next time to be more comfortable)." << std::endl;
-    }
-  } catch(anna::RuntimeException &ex) {
-    ex.trace();
+  if(lst.size() > 1) {
+    std::string all_in_one = "./dictionary-all-in-one.xml";
+    std::ofstream out(all_in_one.c_str(), std::ifstream::out);
+    std::string buffer = d->asXMLString();
+    out.write(buffer.c_str(), buffer.size());
+    out.close();
+    std::cout << "Written accumulated '" << all_in_one << "' (provide it next time to be more comfortable)." << std::endl;
   }
 
+
+
   // Integration (validation 'Complete' for receiving messages) and debugging (validation also before encoding: 'Always').
   // If missing 'integrationAndDebugging', default behaviour at engine is: mode 'AfterDecoding', depth 'FirstError':
   if(cl.exists("integrationAndDebugging")) {