X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=example%2Fdiameter%2FstackManagement%2Fmain.cpp;h=b471c3aeb7c622ebb00c3bfa54a1705a308dcb25;hb=36bb910c8e4ad26ab0b2c9618abc02c255b24e58;hp=d28dc4fab7f3c52ebb4ec4612d3c80e2910ebba7;hpb=fb671d9cbeb9e26d0cde74d80f00fbed82514e0f;p=anna.git diff --git a/example/diameter/stackManagement/main.cpp b/example/diameter/stackManagement/main.cpp index d28dc4f..b471c3a 100644 --- a/example/diameter/stackManagement/main.cpp +++ b/example/diameter/stackManagement/main.cpp @@ -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,51 +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 ,\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"); + std::string exec = argv[0]; + std::string execBN = exec.substr(exec.find_last_of("/") + 1); + std::string filetrace = execBN + ".trace"; + Logger::setLevel(Logger::Debug); + Logger::initialize(execBN.c_str(), new TraceWriter(filetrace.c_str(), 2048000)); + stack::Engine & engine = stack::Engine::instantiate(); + + if(argc < 2) { + std::string msg = anna::functions::asString("Usage: %s \n e.g. '%s avps.xml commands.xml'", exec.c_str(), exec.c_str()); + _exit(msg); + } + + stack::Dictionary *dictionary; + int index = 1; + + try { + dictionary = engine.createDictionary(0 /* general unique stack id */); + dictionary->allowUpdates(); + + while(index < argc) { + dictionary->load(argv[index]); + 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"); }