sc_attr.hh (12837:413a7b490b1b) sc_attr.hh (12898:9c24286c7ddb)
1/*
2 * Copyright 2018 Google, Inc.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
6 * met: redistributions of source code must retain the above copyright
7 * notice, this list of conditions and the following disclaimer;
8 * redistributions in binary form must reproduce the above copyright

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

26 *
27 * Authors: Gabe Black
28 */
29
30#ifndef __SYSTEMC_EXT_CORE_SC_ATTR_HH__
31#define __SYSTEMC_EXT_CORE_SC_ATTR_HH__
32
33#include <string>
1/*
2 * Copyright 2018 Google, Inc.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
6 * met: redistributions of source code must retain the above copyright
7 * notice, this list of conditions and the following disclaimer;
8 * redistributions in binary form must reproduce the above copyright

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

26 *
27 * Authors: Gabe Black
28 */
29
30#ifndef __SYSTEMC_EXT_CORE_SC_ATTR_HH__
31#define __SYSTEMC_EXT_CORE_SC_ATTR_HH__
32
33#include <string>
34#include <vector>
34
35namespace sc_core
36{
37
38class sc_attr_base
39{
40 public:
41 sc_attr_base(const std::string &);

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

86 typedef sc_attr_base *elem_type;
87 typedef elem_type *iterator;
88 typedef const elem_type *const_iterator;
89
90 iterator begin();
91 const_iterator begin() const;
92 iterator end();
93 const_iterator end() const;
35
36namespace sc_core
37{
38
39class sc_attr_base
40{
41 public:
42 sc_attr_base(const std::string &);

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

87 typedef sc_attr_base *elem_type;
88 typedef elem_type *iterator;
89 typedef const elem_type *const_iterator;
90
91 iterator begin();
92 const_iterator begin() const;
93 iterator end();
94 const_iterator end() const;
95
96 private:
97 // Disabled
98 sc_attr_cltn &operator = (const sc_attr_cltn &);
99
100 // "Impelemtation defined" members required by the regression tests.
101 public:
102 sc_attr_cltn();
103
104 // It's non-standard for this not to be disabled.
105 sc_attr_cltn(const sc_attr_cltn &);
106
107 ~sc_attr_cltn();
108
109 bool push_back(sc_attr_base *);
110
111 sc_attr_base *operator [] (const std::string &name);
112 const sc_attr_base *operator [] (const std::string &name) const;
113
114 sc_attr_base *remove(const std::string &name);
115
116 void remove_all();
117
118 int size() const { return cltn.size(); }
119
120 private:
121 std::vector<sc_attr_base *> cltn;
94};
95
96} // namespace sc_core
97
98#endif //__SYSTEMC_EXT_CORE_SC_ATTR_HH__
122};
123
124} // namespace sc_core
125
126#endif //__SYSTEMC_EXT_CORE_SC_ATTR_HH__