# dp_parser.cc

Go to the documentation of this file.

    00001 /**
    00002  * @file dp_parser.cc
    00003  * @author Nicolas VIVIEN
    00004  * @date 2009-08-01
    00005  *
    00006  * @note CopyRight Nicolas VIVIEN
    00007  *
    00008  * @brief COD debug file parser
    00009  *   RIM's JDE generates several files when you build a COD application.
    00010  *   Indeed, with the COD files for the device, we have a ".debug" file.
    00011  *   This file is usefull to debug an application from JVM.
    00012  *   This tool is a parser to understand these ".debug" files.
    00013  *   Obviously, the file contents only some strings and 32 bits words.
    00014  *
    00015  * @par Modifications
    00016  *   - 2009/08/01 : N. VIVIEN
    00017  *     - First release
    00018  *
    00019  * @par Licences
    00020  *   Copyright (C) 2009-2010, Nicolas VIVIEN
    00021  *
    00022  *   This program is free software; you can redistribute it and/or modify
    00023  *   it under the terms of the GNU General Public License as published by
    00024  *   the Free Software Foundation; either version 2 of the License, or
    00025  *   (at your option) any later version.
    00026  *
    00027  *   This program is distributed in the hope that it will be useful,
    00028  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
    00029  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    00030  *
    00031  *   See the GNU General Public License in the COPYING file at the
    00032  *   root directory of this project for more details.
    00033  */
    00034
    00035
    00036 #include <iostream>
    00037 #include <stdlib.h>
    00038 #include "dp_parser.h"
    00039 #include "endian.h"
    00040
    00041
    00042 using namespace std;
    00043
    00044
    00045 namespace Barry {
    00046
    00047 namespace JDG {
    00048
    00049
    00050 string ParseString(istream &input, const int length)
    00051 {
    00052         int i;
    00053         string str;
    00054
    00055         for (i=0; i<length; i++) {
    00056                 uint16_t value;
    00057
    00058                 input.read((char *) &value, sizeof(uint16_t));
    00059
    00060                 str += (char) be_btohs(value);
    00061         }
    00062
    00063         return str;
    00064 }
    00065
    00066
    00067 uint32_t ParseInteger(istream &input)
    00068 {
    00069         uint32_t value;
    00070
    00071         input.read((char *) &value, sizeof(uint32_t));
    00072
    00073         return be_btohl(value);
    00074 }
    00075
    00076
    00077 } // namespace JDG
    00078
    00079 } // namespace Barry
    00080
    00081