astyle
[anna.git] / example / diameter / stackManagement / main.cpp
index 2930aa5..9b83d21 100644 (file)
@@ -1,8 +1,8 @@
-// ANNA - Anna is Not 'N' Anymore
+// ANNA - Anna is Not Nothingness Anymore
 //
 // (c) Copyright 2005-2014 Eduardo Ramos Testillano & Francisco Ruiz Rayo
 //
-// https://bitbucket.org/testillano/anna
+// http://redmine.teslayout.com/projects/anna-suite
 //
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions
@@ -14,7 +14,7 @@
 // copyright notice, this list of conditions and the following disclaimer
 // in the documentation and/or other materials provided with the
 // distribution.
-//     * Neither the name of Google Inc. nor the names of its
+//     *  Neither the name of the copyright holder nor the names of its
 // contributors may be used to endorse or promote products derived from
 // this software without specific prior written permission.
 //
@@ -55,54 +55,51 @@ using namespace anna::diameter;
 
 
 void _exit(const std::string & msg) {
-   std::cout << std::endl << msg << std::endl;
-   exit(-1);
+  std::cout << std::endl << msg << std::endl;
+  exit(-1);
 }
 
 
 int main(int argc, char** argv) {
-   Logger::setLevel(Logger::Debug);
-   Logger::initialize("stackManagement", new TraceWriter("file.trace", 2048000));
-   stack::Engine & engine = stack::Engine::instantiate();
-   std::string exec = argv[0];
-   std::string param = argv[1] ? argv[1] : "";
-
-   if (param == "") {
-      std::string msg = anna::functions::asString("Use: %s <list of xml dictionaries overloaded>,\n     i.e. '%s avps.xml commands.xml'", exec.c_str(), exec.c_str());
-      _exit(msg);
-   }
-
-   int index = 1;
-   const char *xmlFile = argv[index];
-   stack::Dictionary *dictionary;
-
-   try {
-      dictionary = engine.createDictionary(0 /* general unique stack id */);
-      dictionary->allowUpdates();
-
-      while (xmlFile) {
-         dictionary->load(xmlFile);
-         xmlFile = argv[++index];
-      }
-
-      engine.removeStack(0);
-      // Trace:
-      LOGDEBUG(Logger::debug("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", ANNA_FILE_LOCATION));
-      LOGINFORMATION(Logger::information(engine.asString(), ANNA_FILE_LOCATION));
-      LOGDEBUG(Logger::debug("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", ANNA_FILE_LOCATION));
-      LOGDEBUG(Logger::debug(dictionary->asString(), ANNA_FILE_LOCATION));
-      LOGDEBUG(Logger::debug("ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", ANNA_FILE_LOCATION));
-      // Output:
-      std::ofstream out("./result.xml", std::ifstream::out);
-      std::string buffer = dictionary->asXMLString();
-      out.write(buffer.c_str(), buffer.size());
-      out.close();
-      std::cout << "Written 'result.xml'" << std::endl;
-   } catch (anna::RuntimeException &ex) {
-      ex.trace();
-      std::cout << ex.getText() << std::endl;
-   }
-
-   _exit("Open 'file.trace' in order to see the stacks loaded");
+  Logger::setLevel(Logger::Debug);
+  Logger::initialize("stackManagement", new TraceWriter("file.trace", 2048000));
+  stack::Engine & engine = stack::Engine::instantiate();
+  std::string exec = argv[0];
+  std::string param = argv[1] ? argv[1] : "";
+
+  if(argc < 2) {
+    std::string msg = anna::functions::asString("Usage: %s <list of xml dictionaries overloaded>,\n     i.e. '%s avps.xml commands.xml'", exec.c_str(), exec.c_str());
+    _exit(msg);
+  }
+
+  int index = 1;
+  const char *xmlFile = argv[index];
+  stack::Dictionary *dictionary;
+
+  try {
+    dictionary = engine.createDictionary(0 /* general unique stack id */);
+    dictionary->allowUpdates();
+
+    while(xmlFile) {
+      dictionary->load(xmlFile);
+      xmlFile = argv[++index];
+    }
+
+    engine.removeStack(0);
+    // Trace:
+    LOGINFORMATION(Logger::information(engine.asString(), ANNA_FILE_LOCATION));
+    LOGDEBUG(Logger::debug(dictionary->asString(), ANNA_FILE_LOCATION));
+    // Output:
+    std::ofstream out("./result.xml", std::ifstream::out);
+    std::string buffer = dictionary->asXMLString();
+    out.write(buffer.c_str(), buffer.size());
+    out.close();
+    std::cout << "Written 'result.xml'" << std::endl;
+  } catch(anna::RuntimeException &ex) {
+    ex.trace();
+    std::cout << ex.getText() << std::endl;
+  }
+
+  _exit("Open 'file.trace' in order to see the stacks loaded");
 }