diff options
author | Gabe Black <gabeblack@google.com> | 2017-12-03 01:51:53 -0800 |
---|---|---|
committer | Gabe Black <gabeblack@google.com> | 2017-12-04 23:18:46 +0000 |
commit | 0778fbbd4b716d4f9ca71355bf686e76b4165c23 (patch) | |
tree | 191874fce9ccb914c16f103de9686c4bb5f0392c | |
parent | 1088f0c4ac3999fc3c363cc51daef4cfb360a2bd (diff) | |
download | gem5-0778fbbd4b716d4f9ca71355bf686e76b4165c23.tar.xz |
base: Rework the trie dump function to accept a different ostream.
It might often be useful to write output to cout when dumping a trie,
but sometimes it might be useful to dump ot to something else like a
string stream instead.
Change-Id: Iaa4ae772c902b7dbc753f320d1a7eb5fcd4a3db3
Reviewed-on: https://gem5-review.googlesource.com/6266
Reviewed-by: Brandon Potter <Brandon.Potter@amd.com>
Maintainer: Gabe Black <gabeblack@google.com>
-rw-r--r-- | src/base/trie.hh | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/src/base/trie.hh b/src/base/trie.hh index e256377c1..ac6045601 100644 --- a/src/base/trie.hh +++ b/src/base/trie.hh @@ -32,6 +32,7 @@ #define __BASE_TRIE_HH__ #include <cassert> +#include <iostream> #include "base/cprintf.hh" #include "base/logging.hh" @@ -82,20 +83,21 @@ class Trie } void - dump(int level) + dump(std::ostream &os, int level) { for (int i = 1; i < level; i++) { - cprintf("|"); + ccprintf(os, "|"); } if (level == 0) - cprintf("Root "); + ccprintf(os, "Root "); else - cprintf("+ "); - cprintf("(%p, %p, %#X, %#X, %p)\n", parent, this, key, mask, value); + ccprintf(os, "+ "); + ccprintf(os, "(%p, %p, %#X, %#X, %p)\n", + parent, this, key, mask, value); if (kids[0]) - kids[0]->dump(level + 1); + kids[0]->dump(os, level + 1); if (kids[1]) - kids[1]->dump(level + 1); + kids[1]->dump(os, level + 1); } }; @@ -351,13 +353,13 @@ class Trie * @param title An identifying title to put in the dump header. */ void - dump(const char *title) + dump(const char *title, std::ostream &os=std::cout) { - cprintf("**************************************************\n"); - cprintf("*** Start of Trie: %s\n", title); - cprintf("*** (parent, me, key, mask, value pointer)\n"); - cprintf("**************************************************\n"); - head.dump(0); + ccprintf(os, "**************************************************\n"); + ccprintf(os, "*** Start of Trie: %s\n", title); + ccprintf(os, "*** (parent, me, key, mask, value pointer)\n"); + ccprintf(os, "**************************************************\n"); + head.dump(os, 0); } }; |