00001 // ***************************************************************************** 00002 // ***************************************************************************** 00003 // oaPlugInDMInterfaces.h 00004 // 00005 // This file contains the definitions for DM interface classes, and public 00006 // supporting objects. These include: 00007 // 00008 // ILib 00009 // This is an abstract class which specifies the interface for the DM 00010 // library. This interface is used from OA to call the DM library plug-in. 00011 // 00012 // IDMAccess 00013 // This is an abstract class which specifies an access interface for DM 00014 // plug-in components. This interface is used for DM Interface plug-in 00015 // components to call back to OA DM. 00016 // 00017 // IAccessControl 00018 // This is the interface for DM access control plug-in. 00019 // 00020 // ILocking 00021 // This is the interface for DM file locking plug-in. 00022 // 00023 // IDMSystemCaps 00024 // This is the interface for DM system capacity plug-in. 00025 // 00026 // ***************************************************************************** 00027 // Except as specified in the OpenAccess terms of use of Cadence or Silicon 00028 // Integration Initiative, this material may not be copied, modified, 00029 // re-published, uploaded, executed, or distributed in any way, in any medium, 00030 // in whole or in part, without prior written permission from Cadence. 00031 // 00032 // Copyright 2002-2005 Cadence Design Systems, Inc. 00033 // All Rights Reserved. 00034 // 00035 // $Author: icftcm $ 00036 // $Revision: #1 $ 00037 // $Date: 2010/08/09 $ 00038 // $State: Exp $ 00039 // ***************************************************************************** 00040 // ***************************************************************************** 00041 00042 00043 00044 #if !defined(oaPlugInDMInterfaces_P) 00045 #define oaPlugInDMInterfaces_P 00046 00047 00048 00049 // ***************************************************************************** 00050 // Nested includes 00051 // ***************************************************************************** 00052 #include "oaPlugInDMTypes.h" 00053 #include "oaPlugInIDMObject.h" 00054 00055 00056 00057 // ***************************************************************************** 00058 // Declare and define types in the OpenAccess namespace. 00059 // ***************************************************************************** 00060 BEGIN_OA_PLUGIN_NAMESPACE 00061 00062 00063 00064 // ***************************************************************************** 00065 // Forward Public Class Declarations 00066 // ***************************************************************************** 00067 class IDMObject; 00068 class IDMFile; 00069 class ICell; 00070 class ICellView; 00071 class IView; 00072 00073 00074 00075 // ***************************************************************************** 00076 // IDMAccess 00077 // ***************************************************************************** 00078 extern OA_PLUGIN_DLL_API const Guid IID_IDMAccess; 00079 00080 class OA_PLUGIN_DLL_API IDMAccess : public IBase { 00081 public: 00082 enum NameSpace { 00083 cNativeNS = 1, 00084 cWinNS = 2, 00085 cUnixNS = 3 00086 }; 00087 00088 virtual void add(IDMObject *object, 00089 bool checkExistence = false) = 0; 00090 00091 virtual void addLeader(IDMFile *file) = 0; 00092 00093 virtual void create(IDMObject *object) = 0; 00094 00095 virtual void destroy(IDMObject *object) = 0; 00096 00097 virtual void getMappedName(NameSpace fromNS, 00098 const char *fromName, 00099 NameSpace toNS, 00100 IString *&toName) = 0; 00101 00102 virtual SRef<IDMLib> getDMLib() = 0; 00103 00104 static const Guid &getId(); 00105 }; 00106 00107 00108 00109 // ***************************************************************************** 00110 // ILib 00111 // ***************************************************************************** 00112 extern OA_PLUGIN_DLL_API const Guid IID_ILib; 00113 00114 class OA_PLUGIN_DLL_API ILib : public IBase { 00115 public: 00116 virtual void init(const char *libName, 00117 const char *libPath, 00118 oaLibModeEnum libMode, 00119 const char *writePath, 00120 IDMAccess *dmAccess, 00121 IAttrIter *dmAttrs = NULL) = 0; 00122 00123 virtual bool libExists(const char *libPath) = 0; 00124 00125 virtual void libPreCreate() = 0; 00126 virtual void libPostCreate() = 0; 00127 virtual void libPreOpen() = 0; 00128 virtual void libPostOpen() = 0; 00129 virtual void libPreClose() = 0; 00130 00131 virtual void cellCreate(const char *cellName) = 0; 00132 virtual bool cellFind(const char *cellName) = 0; 00133 virtual bool cellValidate(const char *cellName) = 0; 00134 virtual void cellPreFind() = 0; 00135 virtual void cellValidateDestroy(ICell *cell) = 0; 00136 virtual void cellDestroy(ICell *cell) = 0; 00137 00138 virtual void viewCreate(const char *viewName, 00139 const char *viewType) = 0; 00140 virtual bool viewFind(const char *viewName, 00141 const char *viewType) = 0; 00142 virtual bool viewValidate(const char *viewName, 00143 const char *viewType) = 0; 00144 virtual void viewPreFind(const char *viewName) = 0; 00145 virtual void viewPreFind() = 0; 00146 virtual void viewValidateDestroy(IView *view) = 0; 00147 virtual void viewDestroy(IView *view) = 0; 00148 00149 virtual void cellViewCreate(const char *cName, 00150 const char *vName, 00151 const char *vtName) = 0; 00152 virtual bool cellViewFind(const char *cName, 00153 const char *vName, 00154 const char *vtName) = 0; 00155 virtual bool cellViewFindViewType(const char *cName, 00156 const char *vName, 00157 char *vtName) = 0; 00158 virtual bool cellViewValidate(const char *cName, 00159 const char *vName, 00160 const char *vtName) = 0; 00161 virtual void cellViewPreFind(ICell *cell) = 0; 00162 virtual void cellViewPreFind(IView *view) = 0; 00163 virtual void cellViewPreFind() = 0; 00164 virtual void cellViewPreSetView(ICellView *cv, 00165 IView *view, 00166 IDMFile *newPrimary) = 0; 00167 virtual void cellViewPostSetView(ICellView *cv) = 0; 00168 virtual void cellViewValidateDestroy(ICellView *cv) = 0; 00169 virtual void cellViewDestroy(ICellView *cv) = 0; 00170 00171 virtual void fileCreate(const char *name, 00172 IDMObject *parent, 00173 bool primary) = 0; 00174 virtual bool fileFind(const char *name, 00175 IDMObject *parent) = 0; 00176 virtual bool fileValidate(const char *name, 00177 IDMObject *parent) = 0; 00178 virtual void filePreFind(IDMObject *parent) = 0; 00179 virtual void filePreSetLeader(IDMFile *file, 00180 IDMFile *leader) = 0; 00181 virtual void filePostSetLeader(IDMFile *file) = 0; 00182 virtual void filePreSetName(IDMFile *file, 00183 const char *name) = 0; 00184 virtual void filePostSetName(IDMFile *file) = 0; 00185 virtual void fileValidateDestroy(IDMFile *file) = 0; 00186 virtual void fileDestroy(IDMFile *file) = 0; 00187 virtual bool fileGetCache(IDMFile *file, 00188 IString *&path) = 0; 00189 virtual void fileReleaseCache(IDMFile *file, 00190 const char *path) = 0; 00191 00192 virtual void getPath(IDMFile *file, 00193 IString *&path) = 0; 00194 00195 virtual void getTempFile(IDMObject *dmObject, 00196 bool sameFileSystem, 00197 IString *&path) = 0; 00198 00199 virtual void getDMSystemName(IString *&dmSystem) = 0; 00200 virtual void getAttributes(IAttrIter *&dmAttrs) = 0; 00201 00202 virtual void setAttributes(IAttrIter *dmAttrs) = 0; 00203 00204 virtual void getPath(IDMFile *file, 00205 oaSaveRecoverTypeEnum type, 00206 IString *&path) = 0; 00207 virtual void fileCreate(IDMFile *file, 00208 oaSaveRecoverTypeEnum type) = 0; 00209 virtual void fileValidateDestroy(IDMFile *file, 00210 oaSaveRecoverTypeEnum type) = 0; 00211 virtual void fileDestroy(IDMFile *file, 00212 oaSaveRecoverTypeEnum type) = 0; 00213 virtual bool exists(IDMFile *file, 00214 oaSaveRecoverTypeEnum type) = 0; 00215 00216 static const Guid &getId(); 00217 }; 00218 00219 00220 00221 // ***************************************************************************** 00222 // IAccessControl 00223 // ***************************************************************************** 00224 extern OA_PLUGIN_DLL_API const Guid IID_IAccessControl; 00225 00226 class OA_PLUGIN_DLL_API IAccessControl : public IBase { 00227 public: 00228 virtual bool getAccess(oaLibAccessEnum accessType, 00229 oa::oaUInt4 timeOut) = 0; 00230 virtual void releaseAccess() = 0; 00231 00232 static const Guid &getId(); 00233 }; 00234 00235 00236 00237 // ***************************************************************************** 00238 // ILocking 00239 // ***************************************************************************** 00240 extern OA_PLUGIN_DLL_API const Guid IID_ILocking; 00241 00242 class OA_PLUGIN_DLL_API ILocking : public IBase { 00243 public: 00244 virtual bool lock(IDMFile *obj) = 0; 00245 virtual void unlock(IDMFile *obj) = 0; 00246 virtual oa::oaUInt4 getLockStatus(IDMFile *obj) = 0; 00247 00248 static const Guid &getId(); 00249 }; 00250 00251 00252 00253 // ***************************************************************************** 00254 // IDMSystemCaps 00255 // ***************************************************************************** 00256 extern OA_PLUGIN_DLL_API const Guid IID_IDMSystemCaps; 00257 00258 class OA_PLUGIN_DLL_API IDMSystemCaps : public IBase { 00259 public: 00260 virtual bool queryCapability(const char *name) = 0; 00261 virtual bool getMetric(const char *name, 00262 oa::oaUInt4 &metric) = 0; 00263 virtual bool getMetric(const char *name, 00264 double &metric) = 0; 00265 00266 static const Guid &getId(); 00267 }; 00268 00269 00270 00271 END_OA_PLUGIN_NAMESPACE 00272 00273 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.