oaVCSystem.h

Go to the documentation of this file.
00001 // *****************************************************************************
00002 // *****************************************************************************
00003 // oaVCSystem.h
00004 //
00005 // This file contains the definition for the oaVCSystem class and classes
00006 // assiciated with the version control API.
00007 //
00008 // oaVCSystem
00009 //      This class is used to manage and access version control plug-ins through
00010 //      the OA public interface.
00011 //
00012 // oaVCVersion
00013 //      This class manages an IVersion interface pointer as an abstraction for
00014 //      the OA public API. The real work is done by a derived oaVCVersionPvt
00015 //      class to prevent dependencies from the OA public API on the plug-in
00016 //      interfaces.
00017 //
00018 // *****************************************************************************
00019 // Except as specified in the OpenAccess terms of use of Cadence or Silicon
00020 // Integration Initiative, this material may not be copied, modified,
00021 // re-published, uploaded, executed, or distributed in any way, in any medium,
00022 // in whole or in part, without prior written permission from Cadence.
00023 //
00024 //                Copyright 2002-2005 Cadence Design Systems, Inc.
00025 //                           All Rights Reserved.
00026 //
00027 //  $Author: icftcm $
00028 //  $Revision: #1 $
00029 //  $Date: 2010/08/09 $
00030 //  $State: Exp $
00031 // *****************************************************************************
00032 // *****************************************************************************
00033 
00034 
00035 
00036 #if !defined(oaVCSystem_P)
00037 #define oaVCSystem_P
00038 
00039 
00040 
00041 // *****************************************************************************
00042 // Nested includes
00043 // *****************************************************************************
00044 #include "oaArray.h"
00045 #include "oaVCCap.h"
00046 #include "oaVersionComp.h"
00047 
00048 
00049 
00050 // *****************************************************************************
00051 // Declare and define types in the OpenAccess namespace.
00052 // *****************************************************************************
00053 BEGIN_OA_NAMESPACE
00054 
00055 
00056 
00057 // *****************************************************************************
00058 // oaVCSystem
00059 // *****************************************************************************
00060 class OA_DM_DLL_API oaVCSystem {
00061 public:
00062     static oaVCSystem       *get(const oaChar *name);
00063     void                    destroy();
00064 
00065     virtual void            getName(oaString &name) const = 0;
00066 
00067     virtual oaBoolean       testCapability(oaVCCap cap) const = 0;
00068     virtual oaBoolean       getControlledLibs(oaArray<oaLib*> &libs) const = 0;
00069 
00070 protected:
00071     virtual                 ~oaVCSystem();
00072 };
00073 
00074 
00075 
00076 // *****************************************************************************
00077 // oaVCVersion
00078 // *****************************************************************************
00079 class OA_DM_DLL_API oaVCVersion {
00080 public:
00081                             oaVCVersion();
00082                             oaVCVersion(const oaChar    *sysName,
00083                                         const oaChar    *displayName = NULL);
00084                             oaVCVersion(const oaVCVersion &ver);
00085                             oaVCVersion(void *versionData);
00086                             ~oaVCVersion();
00087 
00088     void                    getVCSystemName(oaString &sysName) const;
00089     void                    setDisplayName(const oaChar *sysName,
00090                                            const oaChar *displayName);
00091     void                    getDisplayName(oaString &name) const;
00092     oaVersionComp           compare(const oaVCVersion *other) const;
00093 
00094     oaVCVersion             &operator=(const oaVCVersion &ver);
00095 
00096     void                    *getRaw() const;
00097 
00098 private:
00099     void                    *version;
00100 };
00101 
00102 
00103 
00104 // *****************************************************************************
00105 // oaVCVersionIter
00106 // *****************************************************************************
00107 class OA_DM_DLL_API oaVCVersionIter {
00108 public:
00109                             oaVCVersionIter(const oaVCVersionIter &iter);
00110                             oaVCVersionIter(void *data);
00111                             ~oaVCVersionIter();
00112     oaVCVersionIter         &operator=(const oaVCVersionIter &iter);
00113 
00114 
00115     oaVCVersion             getNext();
00116     void                    reset();
00117 
00118 private:
00119     void                    *data;
00120 };
00121 
00122 
00123 
00124 END_OA_NAMESPACE
00125 
00126 #endif

Return to top of page