oaModConnectDef.h

Go to the documentation of this file.
00001 // *****************************************************************************
00002 // *****************************************************************************
00003 // oaModConnectDef.h
00004 //
00005 // This file contains the definition of the oaModConnectDef class, its derived
00006 // classes, and its public supporting classes. The oaModConnectDef class is an
00007 // abstract base for all types of logical connection definitions. A connection
00008 // definition specifies an oaAssignmentDef to be used for the associated
00009 // connectivity object. The derived classes include:
00010 //
00011 //  oaModNetConnectDef
00012 //      This class implements a connectDef that associates a single-bit,
00013 //      explicit net occurrence with a given oaAssignmentDef. The connectDef is
00014 //      interpreted by connectivity traversal applications where the
00015 //      assignmentDef is used to determine the name to use for the associated
00016 //      net.
00017 //
00018 //  oaModTermConnectDef
00019 //      This class implements a connectDef that is associated with a single-bit,
00020 //      explicit terminal occurrence with a given oaAssignmentDef. The
00021 //      connectDef is interpreted by connectivity traversal applications where
00022 //      the assignmentDef is used to determine the name of the net to externally
00023 //      connect the terminal to.
00024 //
00025 // *****************************************************************************
00026 // Except as specified in the OpenAccess terms of use of Cadence or Silicon
00027 // Integration Initiative, this material may not be copied, modified,
00028 // re-published, uploaded, executed, or distributed in any way, in any medium,
00029 // in whole or in part, without prior written permission from Cadence.
00030 //
00031 //                Copyright 2003-2005 Cadence Design Systems, Inc.
00032 //                           All Rights Reserved.
00033 //
00034 //  $Author: icftcm $
00035 //  $Revision: #1 $
00036 //  $Date: 2010/08/09 $
00037 //  $State: Exp $
00038 // *****************************************************************************
00039 // *****************************************************************************
00040 
00041 
00042 
00043 #if !defined(oaModConnectDef_P)
00044 #define oaModConnectDef_P
00045 
00046 
00047 
00048 // *****************************************************************************
00049 // Nested includes
00050 // *****************************************************************************
00051 #include "oaAssignmentDef.h"
00052 #include "oaModTerm.h"
00053 
00054 
00055 
00056 // *****************************************************************************
00057 // Declare and define types in the OpenAccess namespace.
00058 // *****************************************************************************
00059 BEGIN_OA_NAMESPACE
00060 
00061 
00062 
00063 // *****************************************************************************
00064 // oaModConnectDef
00065 // *****************************************************************************
00066 class OA_DESIGN_DLL_API oaModConnectDef : public oaModObject {
00067 public:
00068     void                    destroy();
00069 
00070     void                    getAssignmentDef(oaAssignmentDef &assignmentDef) const;
00071 
00072     enum {dtIndex = oacConnectDefDataType};
00073 };
00074 
00075 
00076 
00077 // *****************************************************************************
00078 // oaModNetConnectDef
00079 // *****************************************************************************
00080 class OA_DESIGN_DLL_API oaModNetConnectDef : public oaModConnectDef {
00081 public:
00082     static oaModNetConnectDef   *create(const oaModBitNet       *net,
00083                                         const oaAssignmentDef   &assignmentDef);
00084 
00085     oaModBitNet                 *getNet() const;
00086 };
00087 
00088 
00089 
00090 // *****************************************************************************
00091 // oaModTermConnectDef
00092 // *****************************************************************************
00093 class OA_DESIGN_DLL_API oaModTermConnectDef : public oaModConnectDef {
00094 public:
00095     static oaModTermConnectDef  *create(const oaModBitTerm      *term,
00096                                         const oaAssignmentDef   &assignmentDef);
00097 
00098     oaModBitTerm                *getTerm() const;
00099 };
00100 
00101 
00102 
00103 // *****************************************************************************
00104 // Design Traits.
00105 // *****************************************************************************
00106 template<>
00107 class oaTraits<oaModConnectDef> {
00108 public:
00109     typedef oaModObject             parentType;
00110     typedef oaConnectDefModTypeEnum modTypeType;
00111     enum {domain = oacModDomain};
00112     enum {isMultiDomain = true};
00113     enum {dbType = oacDesignDBType};
00114     enum {isConcrete = false};
00115     enum {dtIndex = oacConnectDefDataType};
00116     enum {dataTypeEnumVal = oacConnectDefDataType};
00117     enum {abstractTypeEnumVal = oacModConnectDefType};
00118 };
00119 
00120 template<>
00121 class oaTraits<oaModNetConnectDef> {
00122 public:
00123     typedef oaConnectDefModTypeEnum modTypeType;
00124     typedef oaModConnectDef         parentType;
00125     enum {dtIndex = oacConnectDefDataType};
00126     enum {dataTypeEnumVal = oacConnectDefDataType};
00127     enum {domain = oacModDomain};
00128     enum {isMultiDomain = true};
00129     enum {dbType = oacDesignDBType};
00130     enum {isConcrete = true};
00131     enum {objectTypeEnumVal = oacModNetConnectDefType};
00132 };
00133 
00134 template<>
00135 class oaTraits<oaModTermConnectDef> {
00136 public:
00137     typedef oaConnectDefModTypeEnum modTypeType;
00138     typedef oaModConnectDef         parentType;
00139     enum {dtIndex = oacConnectDefDataType};
00140     enum {dataTypeEnumVal = oacConnectDefDataType};
00141     enum {domain = oacModDomain};
00142     enum {isMultiDomain = true};
00143     enum {dbType = oacDesignDBType};
00144     enum {isConcrete = true};
00145     enum {objectTypeEnumVal = oacModTermConnectDefType};
00146 };
00147 
00148 
00149 
00150 END_OA_NAMESPACE
00151 
00152 #endif

Return to top of page