oaPlugInDMInterfaces.h

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

Return to top of page