36#if defined(_MSC_VER) && !defined(SC_WIN_DLL_WARN)
38#pragma warning(disable: 4251)
48class sc_phase_callback_registry;
71 [[nodiscard]] sc_hierarchy_scope move()
72 {
return std::move(*
this); }
74 sc_hierarchy_scope(kernel_tag,
sc_object*);
89 void*
operator new(std::size_t) ;
90 void*
operator new[](std::size_t) ;
92 static const root_tag root;
109 friend class sc_invoke_method;
113 friend class sc_phase_callback_registry;
123 {
return m_name.c_str(); }
127 virtual void print(::std::ostream& os=::std::cout )
const;
130 virtual void dump(::std::ostream& os=::std::cout )
const;
134 virtual const char*
kind()
const {
return "sc_object"; }
179 void sc_object_init(
const char* nm);
218 {
return m_child_events; }
221 {
return m_child_objects; }
228 virtual void add_child_event(
sc_event* event_p );
229 virtual void add_child_object(
sc_object* object_p );
230 virtual bool remove_child_event(
sc_event* event_p );
231 virtual bool remove_child_object(
sc_object* object_p );
233 void orphan_child_events();
234 void orphan_child_objects();
236 const char* gen_unique_name(
const char* basename_,
bool preserve_first );
244 std::vector<sc_event*> m_child_events;
245 std::vector<sc_object*> m_child_objects;
268#if defined(_MSC_VER) && !defined(SC_WIN_DLL_WARN)
sc_object * sc_get_parent(const sc_object *obj_p)
SC_API const char * sc_gen_unique_name(const char *, bool preserve_first)
const char SC_HIERARCHY_CHAR
bool sc_enable_name_checking
class SC_API sc_object_host
~sc_hierarchy_scope() noexcept(false)
sc_hierarchy_scope(sc_hierarchy_scope &&)
sc_object * get_parent() const
virtual const std::vector< sc_event * > & get_child_events() const
sc_object * get_parent_object() const
sc_object & operator=(const sc_object &)
virtual hierarchy_scope get_hierarchy_scope()
sc_object(const sc_object &)
const char * name() const
const char * basename() const
int num_attributes() const
bool add_attribute(sc_attr_base &)
const sc_attr_base * get_attribute(const std::string &name_) const
sc_simcontext * simcontext() const
virtual void print(::std::ostream &os=::std::cout) const
void remove_all_attributes()
virtual void trace(sc_trace_file *tf) const
sc_attr_base * get_attribute(const std::string &name_)
sc_attr_base * remove_attribute(const std::string &name_)
sc_attr_cltn & attr_cltn()
sc_object(const char *nm)
const sc_attr_cltn & attr_cltn() const
virtual void dump(::std::ostream &os=::std::cout) const
virtual const std::vector< sc_object * > & get_child_objects() const
virtual const char * kind() const
friend SC_API const char * sc_gen_unique_name(const char *, bool preserve_first)
virtual hierarchy_scope get_hierarchy_scope()
virtual ~sc_object_host()
virtual const std::vector< sc_object * > & get_child_objects() const
virtual const std::vector< sc_event * > & get_child_events() const