00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef WIPAL_TOOL_HEXDUMP_HH_
00024 # define WIPAL_TOOL_HEXDUMP_HH_
00025
00026 extern "C"
00027 {
00028 # include <inttypes.h>
00029 }
00030
00031 # include <ostream>
00032 # include <vector>
00033
00034 namespace wpl
00035 {
00036
00037 namespace tool
00038 {
00039
00040 namespace fmt
00041 {
00042 struct raw
00043 {
00044 std::ostream& begin(std::ostream& os) const;
00045 std::ostream& end(std::ostream& os) const;
00046
00047 std::ostream& bold_begin(std::ostream& os) const;
00048 std::ostream& bold_end(std::ostream& os) const;
00049
00050 std::ostream& encode(std::ostream& os, char c) const;
00051 };
00052
00053 struct printable: public raw
00054 {
00055 std::ostream& encode(std::ostream& os, char c) const;
00056 };
00057
00058 struct html
00059 {
00060 std::ostream& begin(std::ostream& os) const;
00061 std::ostream& end(std::ostream& os) const;
00062
00063 std::ostream& bold_begin(std::ostream& os) const;
00064 std::ostream& bold_end(std::ostream& os) const;
00065
00066 std::ostream& encode(std::ostream& os, char c) const;
00067 };
00068
00069 }
00070
00071 namespace hex
00072 {
00073
00074 namespace params
00075 {
00076
00077 struct ahc4x4
00078 {
00079 enum
00080 {
00081 bwidth = 4,
00082 lwidth = 16,
00083 p_addr = true,
00084 p_hex = true,
00085 p_char = true,
00086 endl = true
00087 };
00088 static const std::string bigsep;
00089 static const std::string smallsep;
00090 static const std::string colsep;
00091 };
00092
00093
00094 struct h1
00095 {
00096 enum
00097 {
00098 lwidth = 65536,
00099 bwidth = 65536,
00100 p_addr = false,
00101 p_hex = true,
00102 p_char = false,
00103 endl = false
00104 };
00105 static const std::string bigsep;
00106 static const std::string smallsep;
00107 static const std::string colsep;
00108 };
00109
00110 typedef ahc4x4 def;
00111 typedef h1 str;
00112
00113 }
00114
00115 template <class Params, class Format>
00116 std::string
00117 dump(const void* data,
00118 size_t len,
00119 const Format& f);
00120
00121 std::vector<uint8_t>
00122 read(const std::string& s);
00123
00124 }
00125
00126 }
00127
00128 }
00129
00130 # include "hexdump.hxx"
00131
00132 #endif // ! WIPAL_TOOL_HEXDUMP_HH_