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__ |