oaRoute.h

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

Return to top of page