00001 // ***************************************************************************** 00002 // ***************************************************************************** 00003 // oaBlockObject.h 00004 // 00005 // This file contains the definition for the oaBlockObject class. This is an 00006 // abstract class that is the base for all OpenAccess database objects in the 00007 // block hierarchy. 00008 // 00009 // ***************************************************************************** 00010 // Except as specified in the OpenAccess terms of use of Cadence or Silicon 00011 // Integration Initiative, this material may not be copied, modified, 00012 // re-published, uploaded, executed, or distributed in any way, in any medium, 00013 // in whole or in part, without prior written permission from Cadence. 00014 // 00015 // Copyright 2002-2005 Cadence Design Systems, Inc. 00016 // All Rights Reserved. 00017 // 00018 // $Author: icftcm $ 00019 // $Revision: #1 $ 00020 // $Date: 2010/08/09 $ 00021 // $State: Exp $ 00022 // ***************************************************************************** 00023 // ***************************************************************************** 00024 00025 00026 00027 #if !defined(oaBlockObject_P) 00028 #define oaBlockObject_P 00029 00030 00031 00032 // ***************************************************************************** 00033 // Nested includes 00034 // ***************************************************************************** 00035 #include "oaCollection.h" 00036 #include "oaDesignObject.h" 00037 00038 00039 00040 // ***************************************************************************** 00041 // Declare and define types in the OpenAccess namespace. 00042 // ***************************************************************************** 00043 BEGIN_OA_NAMESPACE 00044 00045 00046 00047 // ***************************************************************************** 00048 // oaBlockDomainVisibilityEnum 00049 // ***************************************************************************** 00050 #define oavNumBlockDomainVisibilityTypes 2 00051 00052 enum oaBlockDomainVisibilityEnum { 00053 oacInheritFromTopBlock = 0, 00054 oacExcludeFromModuleDomain = 1 00055 }; 00056 00057 00058 00059 // ***************************************************************************** 00060 // oaBlockDomainVisibility 00061 // ***************************************************************************** 00062 class OA_DESIGN_DLL_API oaBlockDomainVisibility { 00063 public: 00064 oaBlockDomainVisibility(oaBlockDomainVisibilityEnum valueIn); 00065 oaBlockDomainVisibility(const oaString &name); 00066 ~oaBlockDomainVisibility(); 00067 00068 const oaString &getName() const; 00069 00070 operator oaBlockDomainVisibilityEnum() const; 00071 00072 private: 00073 oaBlockDomainVisibilityEnum value; 00074 00075 static const oaString names[]; 00076 }; 00077 00078 00079 00080 // ***************************************************************************** 00081 // oaBlockObject 00082 // ***************************************************************************** 00083 class OA_DESIGN_DLL_API oaBlockObject : public oaDesignObject { 00084 public: 00085 oaBoolean isNet() const; 00086 oaBoolean isBitNet() const; 00087 oaBoolean isTerm() const; 00088 oaBoolean isBitTerm() const; 00089 oaBoolean isInst() const; 00090 oaBoolean isBitInst() const; 00091 oaBoolean isAssignment() const; 00092 oaBoolean isConnectDef() const; 00093 oaBoolean isFig() const; 00094 oaBoolean isConnFig() const; 00095 oaBoolean isPinFig() const; 00096 oaBoolean isShape() const; 00097 oaBoolean isOccShape() const; 00098 oaBoolean isBlockage() const; 00099 oaBoolean isTextDisplay() const; 00100 oaBoolean isOccTextDisplay() const; 00101 oaBoolean isRef() const; 00102 oaBoolean isBoundary() const; 00103 oaBoolean isVia() const; 00104 oaBoolean isViaHeader() const; 00105 00106 oaBlock *getBlock(); 00107 00108 oaCollection<oaMarker, oaBlockObject> getMarkersOwnedBy() const; 00109 00110 enum {domain = oacBlockDomain}; 00111 }; 00112 00113 00114 00115 // ***************************************************************************** 00116 // Design Traits. 00117 // ***************************************************************************** 00118 template<> 00119 class oaTraits<oaBlockObject> { 00120 public: 00121 typedef oaDesignObject parentType; 00122 enum {dbType = oacDesignDBType}; 00123 enum {isMultiDomain = false}; 00124 enum {isConcrete = false}; 00125 enum {domain = oacBlockDomain}; 00126 enum {abstractTypeEnumVal = oacBlockObjectType}; 00127 }; 00128 00129 00130 00131 END_OA_NAMESPACE 00132 00133 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.