text.hh (9554:406fbcf60223) text.hh (14205:197360deaa20)
1/*
1/*
2 * Copyright (c) 2019 Arm Limited
3 * All rights reserved.
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software
9 * licensed hereunder. You may use the software subject to the license
10 * terms below provided that you ensure that this notice is replicated
11 * unmodified and in its entirety in all distributions of the software,
12 * modified or unmodified, in source code or in binary form.
13 *
2 * Copyright (c) 2004-2005 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;
9 * redistributions in binary form must reproduce the above copyright

--- 17 unchanged lines hidden (view full) ---

27 *
28 * Authors: Nathan Binkert
29 */
30
31#ifndef __BASE_STATS_TEXT_HH__
32#define __BASE_STATS_TEXT_HH__
33
34#include <iosfwd>
14 * Copyright (c) 2004-2005 The Regents of The University of Michigan
15 * All rights reserved.
16 *
17 * Redistribution and use in source and binary forms, with or without
18 * modification, are permitted provided that the following conditions are
19 * met: redistributions of source code must retain the above copyright
20 * notice, this list of conditions and the following disclaimer;
21 * redistributions in binary form must reproduce the above copyright

--- 17 unchanged lines hidden (view full) ---

39 *
40 * Authors: Nathan Binkert
41 */
42
43#ifndef __BASE_STATS_TEXT_HH__
44#define __BASE_STATS_TEXT_HH__
45
46#include <iosfwd>
47#include <stack>
35#include <string>
36
37#include "base/stats/output.hh"
38#include "base/stats/types.hh"
39#include "base/output.hh"
40
41namespace Stats {
42
43class Text : public Output
44{
45 protected:
46 bool mystream;
47 std::ostream *stream;
48
48#include <string>
49
50#include "base/stats/output.hh"
51#include "base/stats/types.hh"
52#include "base/output.hh"
53
54namespace Stats {
55
56class Text : public Output
57{
58 protected:
59 bool mystream;
60 std::ostream *stream;
61
62 // Object/group path
63 std::stack<std::string> path;
64
49 protected:
50 bool noOutput(const Info &info);
51
52 public:
53 bool descriptions;
54
55 public:
56 Text();
57 Text(std::ostream &stream);
58 Text(const std::string &file);
59 ~Text();
60
61 void open(std::ostream &stream);
62 void open(const std::string &file);
65 protected:
66 bool noOutput(const Info &info);
67
68 public:
69 bool descriptions;
70
71 public:
72 Text();
73 Text(std::ostream &stream);
74 Text(const std::string &file);
75 ~Text();
76
77 void open(std::ostream &stream);
78 void open(const std::string &file);
79 std::string statName(const std::string &name) const;
63
64 // Implement Visit
80
81 // Implement Visit
65 virtual void visit(const ScalarInfo &info);
66 virtual void visit(const VectorInfo &info);
67 virtual void visit(const DistInfo &info);
68 virtual void visit(const VectorDistInfo &info);
69 virtual void visit(const Vector2dInfo &info);
70 virtual void visit(const FormulaInfo &info);
71 virtual void visit(const SparseHistInfo &info);
82 void visit(const ScalarInfo &info) override;
83 void visit(const VectorInfo &info) override;
84 void visit(const DistInfo &info) override;
85 void visit(const VectorDistInfo &info) override;
86 void visit(const Vector2dInfo &info) override;
87 void visit(const FormulaInfo &info) override;
88 void visit(const SparseHistInfo &info) override;
72
89
90 // Group handling
91 void beginGroup(const char *name) override;
92 void endGroup() override;
93
73 // Implement Output
94 // Implement Output
74 virtual bool valid() const;
75 virtual void begin();
76 virtual void end();
95 bool valid() const override;
96 void begin() override;
97 void end() override;
77};
78
79std::string ValueToString(Result value, int precision);
80
81Output *initText(const std::string &filename, bool desc);
82
83} // namespace Stats
84
85#endif // __BASE_STATS_TEXT_HH__
98};
99
100std::string ValueToString(Result value, int precision);
101
102Output *initText(const std::string &filename, bool desc);
103
104} // namespace Stats
105
106#endif // __BASE_STATS_TEXT_HH__