00001 // ***************************************************************************** 00002 // ***************************************************************************** 00003 // oaRoute.h 00004 // 00005 // This file contains the definition for the oaRoute class and its public 00006 // supporting classes. The oaRoute class implements a connection (physical, 00007 // logical, or both) from one point to another. The supporting classes include: 00008 // 00009 // oaRouteObjectArray 00010 // This class implements an array of figure pointers used with routes. 00011 // 00012 // ***************************************************************************** 00013 // Except as specified in the OpenAccess terms of use of Cadence or Silicon 00014 // Integration Initiative, this material may not be copied, modified, 00015 // re-published, uploaded, executed, or distributed in any way, in any medium, 00016 // in whole or in part, without prior written permission from Cadence. 00017 // 00018 // Copyright 2003-2005 Cadence Design Systems, Inc. 00019 // All Rights Reserved. 00020 // 00021 // $Author: icftcm $ 00022 // $Revision: #1 $ 00023 // $Date: 2010/08/09 $ 00024 // $State: Exp $ 00025 // ***************************************************************************** 00026 // ***************************************************************************** 00027 00028 00029 00030 #if !defined(oaRoute_P) 00031 #define oaRoute_P 00032 00033 00034 00035 // ***************************************************************************** 00036 // Nested includes 00037 // ***************************************************************************** 00038 #include "oaFig.h" 00039 #include "oaBlock.h" 00040 00041 00042 00043 // ***************************************************************************** 00044 // Declare and define types in the OpenAccess namespace. 00045 // ***************************************************************************** 00046 BEGIN_OA_NAMESPACE 00047 00048 00049 00050 // ***************************************************************************** 00051 // oaRouteObjectArray 00052 // ***************************************************************************** 00053 class OA_DESIGN_DLL_API oaRouteObjectArray : public oaArray<oaFig*> { 00054 public: 00055 oaRouteObjectArray(oaUInt4 sizeIn = 0); 00056 }; 00057 00058 00059 00060 // ***************************************************************************** 00061 // oaRoute 00062 // ***************************************************************************** 00063 class OA_DESIGN_DLL_API oaRoute : public oaConnFig { 00064 public: 00065 static oaRoute *create(oaBlock *block, 00066 oaNet *net = NULL, 00067 oaBoolean isGlobal = false, 00068 oaRouteStatus stat = oacNormalRouteStatus); 00069 00070 oaRouteStatus getRouteStatus() const; 00071 oaBlockObject *getBeginConn() const; 00072 oaBlockObject *getEndConn() const; 00073 oaUInt4 getNumObjects() const; 00074 void getObjects(oaRouteObjectArray &objects) const; 00075 00076 oaBoolean isGlobal() const; 00077 oaBoolean isContiguous() const; 00078 oaBoolean hasGuide() const; 00079 00080 oaBoolean hasDefaultConstraintGroup() const; 00081 oaConstraintGroup *getDefaultConstraintGroup() const; 00082 00083 void setRouteStatus(const oaRouteStatus &routeStatus); 00084 void setBeginConn(oaBlockObject *object); 00085 void setEndConn(oaBlockObject *object); 00086 void setGlobal(oaBoolean global); 00087 void setObjects(const oaRouteObjectArray &objects); 00088 00089 void unsetBeginConn(); 00090 void unsetEndConn(); 00091 void unsetObjects(); 00092 void destroyObjects(); 00093 00094 enum {dtIndex = oacRouteDataType}; 00095 }; 00096 00097 00098 00099 // ***************************************************************************** 00100 // Design Traits. 00101 // ***************************************************************************** 00102 template<> 00103 class oaTraits<oaRoute> { 00104 public: 00105 typedef oaConnFig parentType; 00106 typedef oaRouteModTypeEnum modTypeType; 00107 enum {domain = oacBlockDomain}; 00108 enum {dbType = oacDesignDBType}; 00109 enum {isMultiDomain = false}; 00110 enum {dtIndex = oacRouteDataType}; 00111 enum {isConcrete = true}; 00112 enum {objectTypeEnumVal = oacRouteType}; 00113 enum {dataTypeEnumVal = oacRouteDataType}; 00114 }; 00115 00116 00117 00118 END_OA_NAMESPACE 00119 00120 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.