1 | /*------------------------------------------------------------\ |
---|
2 | | | |
---|
3 | | Tool : systemcass | |
---|
4 | | | |
---|
5 | | File : sc_object.h | |
---|
6 | | | |
---|
7 | | Author : Buchmann Richard | |
---|
8 | | | |
---|
9 | | Date : 09_07_2004 | |
---|
10 | | | |
---|
11 | \------------------------------------------------------------*/ |
---|
12 | #ifndef __SC_OBJECT_H__ |
---|
13 | #define __SC_OBJECT_H__ |
---|
14 | |
---|
15 | #include <iostream> |
---|
16 | #include <vector> |
---|
17 | |
---|
18 | // ---------------------------------------------------------------------------- |
---|
19 | // CLASS : sc_object |
---|
20 | // |
---|
21 | // ---------------------------------------------------------------------------- |
---|
22 | |
---|
23 | namespace sc_core { |
---|
24 | |
---|
25 | class sc_object |
---|
26 | { |
---|
27 | /////////// |
---|
28 | // Internal |
---|
29 | protected: void init (); |
---|
30 | protected: void set_kind (const char *); |
---|
31 | /////////// |
---|
32 | public: |
---|
33 | static const char* const kind_string; |
---|
34 | // LRM |
---|
35 | const char *name () const; |
---|
36 | const char *basename () const; |
---|
37 | void rename (const char*) const; |
---|
38 | |
---|
39 | friend std::ostream& operator << (std::ostream& , const sc_object&); |
---|
40 | /* |
---|
41 | void print () const; |
---|
42 | virtual void print (std::ostream & os) const; |
---|
43 | void dump () const; |
---|
44 | virtual void dump (std::ostream & os) const; |
---|
45 | virtual void trace (sc_trace_file *) const; |
---|
46 | */ |
---|
47 | /*virtual*/ const char *kind () const; |
---|
48 | /* |
---|
49 | sc_simcontext *simcontext () const; |
---|
50 | bool add_attribute (sc_attr_base &); |
---|
51 | sc_attr_base *get_attribute (const sc_string &); |
---|
52 | const sc_attr_base *get_attribute (const sc_string &) const; |
---|
53 | sc_attr_base *remove_attribute (const sc_string &); |
---|
54 | void remove_all_attributes (); |
---|
55 | int num_attributes () const; |
---|
56 | sc_attr_cltn & attr_cltn (); |
---|
57 | const sc_attr_cltn & attr_cltn () const; |
---|
58 | */ |
---|
59 | /* virtual */ const std::vector<sc_object*>& get_child_objects() const; |
---|
60 | sc_object* get_parent_object () const; |
---|
61 | protected: |
---|
62 | sc_object (); |
---|
63 | sc_object (const char *); |
---|
64 | /*virtual */~ sc_object (); |
---|
65 | |
---|
66 | }; |
---|
67 | |
---|
68 | const std::vector<sc_object*>& sc_get_top_level_objects(); |
---|
69 | const sc_object* sc_find_object (const char*); |
---|
70 | |
---|
71 | } // end of sc_core namespace |
---|
72 | |
---|
73 | using sc_core::sc_get_top_level_objects; |
---|
74 | using sc_core::sc_find_object; |
---|
75 | |
---|
76 | #endif |
---|
77 | |
---|