X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=example%2Fdiameter%2FbatchConverter%2Fmain.cpp;h=7a7a2f484351d5ce589a370915fb72d51d31173c;hb=8b8309d46e9ccc968d3a315e86e70c5a806706d0;hp=5ccf1c8a15f1aaed8da3c3c9867c574af4f05992;hpb=e80e62a5cf9aacad1a9551c68c432147ef98cd29;p=anna.git diff --git a/example/diameter/batchConverter/main.cpp b/example/diameter/batchConverter/main.cpp index 5ccf1c8..7a7a2f4 100644 --- a/example/diameter/batchConverter/main.cpp +++ b/example/diameter/batchConverter/main.cpp @@ -68,12 +68,17 @@ void _exit(const std::string &message, int resultCode = 1) { } // Decodes a diameter message coming from a datablock -void decodeDataBlock(const anna::DataBlock &db/*, unsigned int & detectedApplicationId*/) throw() { +bool decodeDataBlock(const anna::DataBlock &db/*, unsigned int & detectedApplicationId*/) throw() { try { + G_codecMsg.clear(); G_codecMsg.decode(db); } catch(RuntimeException &ex) { - _exit(ex.asString()); + std::cerr << ex.asString() << std::endl << std::endl; + //_exit(ex.asString()); + return false; } + + return true; } //------------------------------------------------------------------- @@ -189,7 +194,7 @@ int main(int argc, char **argv) { directoryHex.read(wkDir.c_str(), anna::io::Directory::Mode::FullPath); directoryXml.setPattern(".xml$"); directoryXml.read(wkDir.c_str(), anna::io::Directory::Mode::FullPath); - + // Processing .hex files: bool anyHexConverted = false; if (processHex) { @@ -201,15 +206,16 @@ int main(int argc, char **argv) { _exit("Error reading hex file provided"); // Decode datablock: - decodeDataBlock(db_aux); + if (decodeDataBlock(db_aux)) { - // Write conversion: - std::string outputFile = entry + ".as.xml"; - std::ofstream out(outputFile.c_str(), std::ifstream::out); - out << G_codecMsg.asXMLString(); - out.close(); + // Write conversion: + std::string outputFile = entry + ".as.xml"; + std::ofstream out(outputFile.c_str(), std::ifstream::out); + out << G_codecMsg.asXMLString(); + out.close(); - anyHexConverted = true; + anyHexConverted = true; + } } } @@ -219,17 +225,17 @@ int main(int argc, char **argv) { for (anna::io::Directory::const_iterator it = directoryXml.begin(); it != directoryXml.end(); it++) { const std::string& entry = anna::io::Directory::data (it); LOGDEBUG(anna::Logger::debug(entry + " is being converted to hex", ANNA_FILE_LOCATION)); - + // Load file: - G_codecMsg.loadXML(entry); - + G_codecMsg.loadXMLFile(entry); + // Write conversion: std::string hexString = anna::functions::asHexString(G_codecMsg.code()); std::string outputFile = entry + ".as.hex"; std::ofstream out(outputFile.c_str(), std::ifstream::out); out.write(hexString.c_str(), hexString.size()); out.close(); - + anyXmlConverted = true; } }