summaryrefslogtreecommitdiff
path: root/src/systemc/ext/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/systemc/ext/core')
-rw-r--r--src/systemc/ext/core/sc_attr.hh28
-rw-r--r--src/systemc/ext/core/sc_process_handle.hh9
2 files changed, 35 insertions, 2 deletions
diff --git a/src/systemc/ext/core/sc_attr.hh b/src/systemc/ext/core/sc_attr.hh
index d7baa149d..e1c5ae771 100644
--- a/src/systemc/ext/core/sc_attr.hh
+++ b/src/systemc/ext/core/sc_attr.hh
@@ -31,6 +31,7 @@
#define __SYSTEMC_EXT_CORE_SC_ATTR_HH__
#include <string>
+#include <vector>
namespace sc_core
{
@@ -91,6 +92,33 @@ class sc_attr_cltn
const_iterator begin() const;
iterator end();
const_iterator end() const;
+
+ private:
+ // Disabled
+ sc_attr_cltn &operator = (const sc_attr_cltn &);
+
+ // "Impelemtation defined" members required by the regression tests.
+ public:
+ sc_attr_cltn();
+
+ // It's non-standard for this not to be disabled.
+ sc_attr_cltn(const sc_attr_cltn &);
+
+ ~sc_attr_cltn();
+
+ bool push_back(sc_attr_base *);
+
+ sc_attr_base *operator [] (const std::string &name);
+ const sc_attr_base *operator [] (const std::string &name) const;
+
+ sc_attr_base *remove(const std::string &name);
+
+ void remove_all();
+
+ int size() const { return cltn.size(); }
+
+ private:
+ std::vector<sc_attr_base *> cltn;
};
} // namespace sc_core
diff --git a/src/systemc/ext/core/sc_process_handle.hh b/src/systemc/ext/core/sc_process_handle.hh
index a928ab3ad..a8f977ba6 100644
--- a/src/systemc/ext/core/sc_process_handle.hh
+++ b/src/systemc/ext/core/sc_process_handle.hh
@@ -66,10 +66,15 @@ class sc_unwind_exception : public std::exception
virtual const char *what() const throw();
virtual bool is_reset() const;
- protected:
- sc_unwind_exception();
+ // Nonstandard.
+ // These should be protected, but I think this is to enable catch by
+ // value.
+ public:
sc_unwind_exception(const sc_unwind_exception &);
virtual ~sc_unwind_exception() throw();
+
+ protected:
+ sc_unwind_exception();
};
class sc_process_handle