src/sysc/kernel/sc_module_name.h

Go to the documentation of this file.
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

Generated on Wed Apr 25 13:53:27 2007 for SystemC by  doxygen 1.5.1