Home | History | Annotate | Download | only in Core
      1 //===-- IOStreamMacros.h ----------------------------------------*- C++ -*-===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 
     10 #ifndef liblldb_IOStreamMacros_h_
     11 #define liblldb_IOStreamMacros_h_
     12 #if defined(__cplusplus)
     13 
     14 #include <iomanip>
     15 
     16 #define RAW_HEXBASE     std::setfill('0') << std::hex << std::right
     17 #define HEXBASE         '0' << 'x' << RAW_HEXBASE
     18 #define RAWHEX8(x)      RAW_HEXBASE << std::setw(2) << ((uint32_t)(x))
     19 #define RAWHEX16        RAW_HEXBASE << std::setw(4)
     20 #define RAWHEX32        RAW_HEXBASE << std::setw(8)
     21 #define RAWHEX64        RAW_HEXBASE << std::setw(16)
     22 #define HEX8(x)         HEXBASE << std::setw(2) << ((uint32_t)(x))
     23 #define HEX16           HEXBASE << std::setw(4)
     24 #define HEX32           HEXBASE << std::setw(8)
     25 #define HEX64           HEXBASE << std::setw(16)
     26 #define RAW_HEX(x)      RAW_HEXBASE << std::setw(sizeof(x)*2) << (x)
     27 #define HEX(x)          HEXBASE << std::setw(sizeof(x)*2) << (x)
     28 #define HEX_SIZE(x, sz) HEXBASE << std::setw((sz)) << (x)
     29 #define STRING_WIDTH(w) std::setfill(' ') << std::setw(w)
     30 #define LEFT_STRING_WIDTH(s, w) std::left << std::setfill(' ') << std::setw(w) << (s) << std::right
     31 #define DECIMAL         std::dec << std::setfill(' ')
     32 #define DECIMAL_WIDTH(w) DECIMAL << std::setw(w)
     33 //#define FLOAT(n, d)       std::setfill(' ') << std::setw((n)+(d)+1) << std::setprecision(d) << std::showpoint << std::fixed
     34 #define INDENT_WITH_SPACES(iword_idx)   std::setfill(' ') << std::setw((iword_idx)) << ""
     35 #define INDENT_WITH_TABS(iword_idx)     std::setfill('\t') << std::setw((iword_idx)) << ""
     36 
     37 #endif  // #if defined(__cplusplus)
     38 #endif  // liblldb_IOStreamMacros_h_
     39