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
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.