00001 /***************************************************************************** 00002 00003 The following code is derived, directly or indirectly, from the SystemC 00004 source code Copyright (c) 1996-2005 by all Contributors. 00005 All Rights reserved. 00006 00007 The contents of this file are subject to the restrictions and limitations 00008 set forth in the SystemC Open Source License Version 2.4 (the "License"); 00009 You may not use this file except in compliance with such restrictions and 00010 limitations. You may obtain instructions on how to receive a copy of the 00011 License at http://www.systemc.org/. Software distributed by Contributors 00012 under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 00013 ANY KIND, either express or implied. See the License for the specific 00014 language governing rights and limitations under the License. 00015 00016 *****************************************************************************/ 00017 00018 /***************************************************************************** 00019 00020 sc_module_name.h -- An object used to help manage object names 00021 and hierarchy. 00022 00023 Original Author: Stan Y. Liao, Synopsys, Inc. 00024 00025 *****************************************************************************/ 00026 00027 /***************************************************************************** 00028 00029 MODIFICATION LOG - modifiers, enter your name, affiliation, date and 00030 changes you are making here. 00031 00032 Name, Affiliation, Date: 00033 Description of Modification: 00034 00035 *****************************************************************************/ 00036 00037 #ifndef SC_MODULE_NAME_H 00038 #define SC_MODULE_NAME_H 00039 00040 00041 namespace sc_core { 00042 00043 class sc_simcontext; 00044 class sc_module; 00045 00046 00047 // ---------------------------------------------------------------------------- 00048 // CLASS : sc_module_name 00049 // 00050 // Module name class. 00051 // ---------------------------------------------------------------------------- 00052 00053 class sc_module_name 00054 { 00055 friend class sc_module; 00056 friend class sc_object_manager; 00057 00058 public: 00059 00060 sc_module_name( const char* ); 00061 sc_module_name( const sc_module_name& ); 00062 00063 ~sc_module_name(); 00064 00065 operator const char*() const; 00066 00067 private: 00068 00069 const char* m_name; 00070 sc_module* m_module; 00071 sc_module_name* m_next; 00072 sc_simcontext* m_simc; 00073 bool m_pushed; 00074 00075 private: 00076 00077 // disabled 00078 sc_module_name(); 00079 sc_module_name& operator = ( const sc_module_name& ); 00080 }; 00081 00082 } // namespace sc_core 00083 00084 #endif
1.5.1