00001 // ***************************************************************************** 00002 // ***************************************************************************** 00003 // oaRQPlugMgr.h 00004 // 00005 // This file contains the definitions for IRegionQueryPlugMgr interface class. 00006 // 00007 // IRegionQueryPlugMgr 00008 // This class creates the regionQuery plug-in. Each regionQuery 00009 // implementation must supply its own manager. 00010 // 00011 // ***************************************************************************** 00012 // Except as specified in the OpenAccess terms of use of Cadence or Silicon 00013 // Integration Initiative, this material may not be copied, modified, 00014 // re-published, uploaded, executed, or distributed in any way, in any medium, 00015 // in whole or in part, without prior written permission from Cadence. 00016 // 00017 // Copyright 2002-2009 Cadence Design Systems, Inc. 00018 // All Rights Reserved. 00019 // 00020 // $Author: icftcm $ 00021 // $Revision: #1 $ 00022 // $Date: 2010/08/09 $ 00023 // $State: $ 00024 // ***************************************************************************** 00025 // ***************************************************************************** 00026 00027 00028 00029 #if !defined(oaRQPlugMgr_P) 00030 #define oaRQPlugMgr_P 00031 00032 00033 00034 // ***************************************************************************** 00035 // Nested includes 00036 // ***************************************************************************** 00037 #include "oaCommonIBase.h" 00038 #include "oaDesignDBTypes.h" 00039 00040 00041 00042 // ***************************************************************************** 00043 // Declare and define types in the OpenAccess namespace. 00044 // ***************************************************************************** 00045 BEGIN_OA_NAMESPACE 00046 00047 00048 00049 USE_OA_COMMON_NAMESPACE 00050 00051 00052 00053 // ***************************************************************************** 00054 // Forward class declaration 00055 // ***************************************************************************** 00056 class oaString; 00057 class oaBlockTbl; 00058 class oaBox; 00059 class oaRegionQueryPlug; 00060 class oaShapeQuery; 00061 class oaInstQuery; 00062 class oaViaQuery; 00063 class oaMarkerQuery; 00064 class oaRowQuery; 00065 class oaBoundaryQuery; 00066 class oaGuideQuery; 00067 class oaBlockageQuery; 00068 class oaSteinerQuery; 00069 class oaFigGroupQuery; 00070 class oaLayerRangeBlockageQuery; 00071 class oaPlacementBlockageQuery; 00072 class oaShapeQueryPvt; 00073 class oaInstQueryPvt; 00074 class oaViaQueryPvt; 00075 class oaMarkerQueryPvt; 00076 class oaRowQueryPvt; 00077 class oaBoundaryQueryPvt; 00078 class oaGuideQueryPvt; 00079 class oaBlockageQueryPvt; 00080 class oaSteinerQueryPvt; 00081 class oaFigGroupQueryPvt; 00082 class oaLayerRangeBlockageQueryPvt; 00083 class oaPlacementBlockageQueryPvt; 00084 00085 00086 00087 00088 // ***************************************************************************** 00089 // IRegionQueryPlugMgr 00090 // ***************************************************************************** 00091 class OA_DESIGN_DLL_API IRegionQueryPlugMgr : public IBase { 00092 public: 00093 virtual void getName(oaString &name) = 0; 00094 00095 static const Guid &getId(); 00096 00097 protected: 00098 virtual oaRegionQueryPlug *createPlug(oaBlockTbl *blkTbl, 00099 oaUInt4 blkIndex, 00100 const oaBox &initialBBox) = 0; 00101 00102 virtual oaShapeQueryPvt *createShapeQuery(oaShapeQuery *queryIn) = 0; 00103 virtual oaInstQueryPvt *createInstQuery(oaInstQuery *queryIn) = 0; 00104 virtual oaViaQueryPvt *createViaQuery(oaViaQuery *queryIn) = 0; 00105 virtual oaMarkerQueryPvt *createMarkerQuery(oaMarkerQuery *queryIn) = 0; 00106 virtual oaRowQueryPvt *createRowQuery(oaRowQuery *queryIn) = 0; 00107 virtual oaBoundaryQueryPvt *createBoundaryQuery(oaBoundaryQuery *queryIn) = 0; 00108 virtual oaGuideQueryPvt *createGuideQuery(oaGuideQuery *queryIn) = 0; 00109 virtual oaBlockageQueryPvt *createBlockageQuery(oaBlockageQuery *queryIn) = 0; 00110 virtual oaSteinerQueryPvt *createSteinerQuery(oaSteinerQuery *queryIn) = 0; 00111 virtual oaFigGroupQueryPvt *createFigGroupQuery(oaFigGroupQuery *queryIn) = 0; 00112 virtual oaLayerRangeBlockageQueryPvt *createLayerRangeBlockageQuery(oaLayerRangeBlockageQuery *queryIn) = 0; 00113 virtual oaPlacementBlockageQueryPvt *createPlacementBlockageQuery(oaPlacementBlockageQuery *queryIn) = 0; 00114 00115 friend class oaBlockTbl; 00116 friend class oaShapeQuery; 00117 friend class oaInstQuery; 00118 friend class oaViaQuery; 00119 friend class oaMarkerQuery; 00120 friend class oaRowQuery; 00121 friend class oaBoundaryQuery; 00122 friend class oaGuideQuery; 00123 friend class oaBlockageQuery; 00124 friend class oaSteinerQuery; 00125 friend class oaFigGroupQuery; 00126 friend class oaLayerRangeBlockageQuery; 00127 friend class oaPlacementBlockageQuery; 00128 }; 00129 00130 00131 00132 END_OA_NAMESPACE 00133 00134 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.