oaDMCollection.h

Go to the documentation of this file.
00001 // *****************************************************************************
00002 // *****************************************************************************
00003 // oaDMCollection.h
00004 //
00005 // This file contains the definitions for collections and iterators and their
00006 // supporting classes used in DM module which must be specialized.
00007 //
00008 // *****************************************************************************
00009 // Except as specified in the OpenAccess terms of use of Cadence or Silicon
00010 // Integration Initiative, this material may not be copied, modified,
00011 // re-published, uploaded, executed, or distributed in any way, in any medium,
00012 // in whole or in part, without prior written permission from Cadence.
00013 //
00014 //                Copyright 2003-2005 Cadence Design Systems, Inc.
00015 //                           All Rights Reserved.
00016 //
00017 //  $Author: icftcm $
00018 //  $Revision: #1 $
00019 //  $Date: 2010/08/09 $
00020 //  $State: Exp $
00021 // *****************************************************************************
00022 // *****************************************************************************
00023 
00024 
00025 
00026 #if !defined(oaDMCollection_P)
00027 #define oaDMCollection_P
00028 
00029 
00030 
00031 // *****************************************************************************
00032 // Nested includes
00033 // *****************************************************************************
00034 #include "oaBaseCollection.h"
00035 #include "oaLib.h"
00036 
00037 
00038 
00039 // *****************************************************************************
00040 // Declare and define types in the OpenAccess namespace.
00041 // *****************************************************************************
00042 BEGIN_OA_NAMESPACE
00043 
00044 
00045 
00046 // *****************************************************************************
00047 // oaCollection<oaLib, oaLib>
00048 //
00049 // These are the specialized open library db collection definition and its
00050 // methods.
00051 // *****************************************************************************
00052 template<>
00053 class OA_DM_DLL_API oaCollection<oaLib, oaLib> : public oaDatabaseCollection {
00054 public:
00055                             oaCollection(oaUInt4 dbIDIn);
00056                             oaCollection(const oaCollection<oaLib, oaLib> &c);
00057 
00058     oaBoolean               includes(const oaLib *db) const;
00059 };
00060 
00061 
00062 
00063 // *****************************************************************************
00064 // oaIter<oaLib>
00065 //
00066 // This is the specialization of oaIter<> for oaLib.
00067 // *****************************************************************************
00068 template <>
00069 class OA_DM_DLL_API oaIter<oaLib> : public oaDatabaseIter {
00070 public:
00071                             oaIter(const oaCollection<oaLib, oaLib> &c);
00072                             oaIter(const oaIter<oaLib> &iterIn);
00073 
00074     oaLib                   *getNext();
00075 };
00076 
00077 
00078 
00079 // *****************************************************************************
00080 // oaCollection<oaGroup, oaLib>
00081 //
00082 // These are the specialized definitions of an oaCollection<> class and its
00083 // methods.
00084 // *****************************************************************************
00085 template <>
00086 class OA_DM_DLL_API oaCollection<oaGroup, oaLib> : public oaGroupCollection {
00087 public:
00088                             oaCollection(const oaObject *db,
00089                                          oaUInt4        nameIndexIn = oacNullIndex);
00090                             oaCollection(const oaObject *db,
00091                                          oaUInt4        filterFlags,
00092                                          oaUInt4        defIndexIn);
00093                             oaCollection(const oaCollection<oaGroup, oaLib> &col);
00094 };
00095 
00096 
00097 
00098 // *****************************************************************************
00099 // oaCollection<oaGroup, oaDMData>
00100 //
00101 // These are the specialized definitions of an oaCollection<> class and its
00102 // methods.
00103 // *****************************************************************************
00104 template <>
00105 class OA_DM_DLL_API oaCollection<oaGroup, oaDMData> : public oaGroupCollection {
00106 public:
00107                             oaCollection(const oaObject *db,
00108                                          oaUInt4        nameIndexIn = oacNullIndex);
00109                             oaCollection(const oaObject *db,
00110                                          oaUInt4        filterFlags,
00111                                          oaUInt4        defIndexIn);
00112                             oaCollection(const oaCollection<oaGroup, oaDMData> &col);
00113 };
00114 
00115 
00116 
00117 // *****************************************************************************
00118 // oaCollection<oaDMData, oaDMData>
00119 //
00120 // These are the specialized open library db collection definition and its
00121 // methods.
00122 // *****************************************************************************
00123 template<>
00124 class OA_DM_DLL_API oaCollection<oaDMData, oaDMData> : public oaDatabaseCollection {
00125 public:
00126                             oaCollection(oaUInt4 dbIDIn);
00127                             oaCollection(const oaCollection<oaDMData, oaDMData> &c);
00128 
00129     oaBoolean               includes(const oaDMData *db) const;
00130 };
00131 
00132 
00133 
00134 // *****************************************************************************
00135 // oaIter<oaDMData>
00136 //
00137 // This is the specialization of oaIter<> for oaDMData.
00138 // *****************************************************************************
00139 template <>
00140 class OA_DM_DLL_API oaIter<oaDMData> : public oaDatabaseIter {
00141 public:
00142                             oaIter(const oaCollection<oaDMData, oaDMData> &c);
00143                             oaIter(const oaIter<oaDMData> &iterIn);
00144 
00145     oaDMData                *getNext();
00146 };
00147 
00148 
00149 
00150 // *****************************************************************************
00151 // oaCollection<oaAppObject, oaDMData>
00152 //
00153 // These are the specialized definitions of an oaCollection<> class and its
00154 // methods.
00155 // *****************************************************************************
00156 template <>
00157 class OA_DM_DLL_API oaCollection<oaAppObject, oaDMData> : public oaAppObjectCollection {
00158 public:
00159                             oaCollection(const oaObject         *db,
00160                                          const oaAppObjectDef   *def);
00161                             oaCollection(const oaCollection<oaAppObject, oaDMData> &c);
00162 };
00163 
00164 
00165 
00166 // *****************************************************************************
00167 // oaCollection<oaAppObjectDef, oaDesign>
00168 //
00169 // These are the specialized definitions of an oaCollection<> class and its
00170 // methods.
00171 // *****************************************************************************
00172 template <>
00173 class OA_DM_DLL_API oaCollection<oaAppObjectDef, oaDMData> : public oaAppObjectDefCollection {
00174 public:
00175                             oaCollection(const oaObject *db);
00176                             oaCollection(const oaCollection<oaAppObjectDef, oaDMData> &c);
00177 };
00178 
00179 
00180 
00181 // *****************************************************************************
00182 // oaCollection<oaAppDef, oaDMData>
00183 //
00184 // These are the specialized definitions of an oaCollection<> class and its
00185 // methods.
00186 // *****************************************************************************
00187 template <>
00188 class OA_DM_DLL_API oaCollection<oaAppDef, oaDMData> : public oaCollection<oaAppDef, oaObject> {
00189 public:
00190                             oaCollection(const oaObject *db,
00191                                          oaDMDataType   dataType);
00192                             oaCollection(const oaCollection<oaAppDef, oaDMData> &c);
00193 };
00194 
00195 
00196 
00197 END_OA_NAMESPACE
00198 
00199 #endif

Return to top of page