From 0778fbbd4b716d4f9ca71355bf686e76b4165c23 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Sun, 3 Dec 2017 01:51:53 -0800 Subject: 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 Maintainer: Gabe Black --- src/base/trie.hh | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) (limited to 'src/base') 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 +#include #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); } }; -- cgit v1.2.3