oaRQPlugMgr.h

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

Return to top of page