}
// 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;
}
//-------------------------------------------------------------------
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) {
_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;
+ }
}
}
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;
}
}