oaPlugInCMInterfaces.h

Go to the documentation of this file.
00001 // *****************************************************************************
00002 // *****************************************************************************
00003 // oaPlugInCMInterfaces.h
00004 //
00005 // This file contains the definitions for Change Management System interface
00006 // classes. These include:
00007 //
00008 //  ICMPlugInBase
00009 //      This is an abstract base class which defines the common interfaces for
00010 //      all Change Management System plug-ins. These interfaces are to support
00011 //      the initialization of the plug-in and to get the array of protocols the
00012 //      plug-in supports.
00013 //
00014 //  ITracking
00015 //      This class defines the interface to the Change Management System 
00016 //      Tracking plug-in. There are interfaces to begin and end the tracking
00017 //      services.
00018 //
00019 //  IExport
00020 //      This class defines the interface to the Change Management System Export
00021 //      plug-in. It supports an interface to export a full or incremental change
00022 //      set using the specified protocol.
00023 //
00024 //
00025 // *****************************************************************************
00026 // Except as specified in the OpenAccess terms of use of Cadence or Silicon
00027 // Integration Initiative, this material may not be copied, modified,
00028 // re-published, uploaded, executed, or distributed in any way, in any medium,
00029 // in whole or in part, without prior written permission from Cadence.
00030 //
00031 //                Copyright 2007 Cadence Design Systems, Inc.
00032 //                           All Rights Reserved.
00033 //
00034 //  $Author: icftcm $
00035 //  $Revision: #1 $
00036 //  $Date: 2007/03/20 $
00037 //  $State: Exp $
00038 // *****************************************************************************
00039 // *****************************************************************************
00040 
00041 
00042 
00043 #if !defined(oaPlugInCMInterfaces_P)
00044 #define oaPlugInCMInterfaces_P
00045 
00046 
00047 
00048 // *****************************************************************************
00049 // Nested Includes
00050 // *****************************************************************************
00051 #include "oaPlugInTypes.h"
00052 #include "oaCommonIBase.h"
00053 
00054 
00055 
00056 // *****************************************************************************
00057 // Forward Declarations
00058 // *****************************************************************************
00059 BEGIN_OA_NAMESPACE
00060 class oaString;
00061 class oaChangeSetBase;
00062 class oaCMProtocol;
00063 class oaCMProtocolArray;
00064 END_OA_NAMESPACE
00065 
00066 
00067 
00068 // *****************************************************************************
00069 // Define names in the OA_PLUGIIN namespace.
00070 // *****************************************************************************
00071 BEGIN_OA_PLUGIN_NAMESPACE
00072 
00073 
00074 
00075 // *****************************************************************************
00076 // ICMPlugInBase
00077 // *****************************************************************************
00078 class OA_PLUGIN_DLL_API ICMPlugInBase : public oaCommon::IBase {
00079 public:
00080     virtual                 ~ICMPlugInBase();
00081     virtual void            init() = 0;
00082     virtual void            getProtocols(oa::oaCMProtocolArray &out) const = 0;
00083     virtual void            setProtocol(const oa::oaCMProtocol &in) = 0;
00084     virtual void            discardChangeSet(oa::oaChangeSetBase *in) = 0;
00085 };
00086 
00087 
00088 
00089 // *****************************************************************************
00090 // ITracking
00091 // *****************************************************************************
00092 extern OA_PLUGIN_DLL_API const Guid IID_ITracking;
00093 
00094 class OA_PLUGIN_DLL_API ITracking : public ICMPlugInBase {
00095 public:
00096     virtual                 ~ITracking();
00097     virtual void            beginTracking(const oa::oaString &name) = 0;
00098     virtual void            endTracking() = 0;
00099 
00100     static const Guid       &getId();
00101 };
00102 
00103 
00104 
00105 // *****************************************************************************
00106 // ITrackingIter
00107 // *****************************************************************************
00108 extern OA_PLUGIN_DLL_API const Guid IID_ITrackingIter;
00109 typedef IIter<ITracking*, &IID_ITrackingIter> ITrackingIter;
00110 
00111 
00112 
00113 // *****************************************************************************
00114 // IExport
00115 // *****************************************************************************
00116 extern OA_PLUGIN_DLL_API const Guid IID_IExport;
00117 
00118 class OA_PLUGIN_DLL_API IExport : public ICMPlugInBase {
00119 public:
00120     virtual                 ~IExport();
00121     virtual void            exportFull(oa::oaChangeSetBase *changeSet) = 0;
00122     virtual void            exportIncr(oa::oaChangeSetBase *changeSet) = 0;
00123 
00124     static const Guid       &getId();
00125 };
00126 
00127 
00128 
00129 // *****************************************************************************
00130 // IExportIter
00131 // *****************************************************************************
00132 extern OA_PLUGIN_DLL_API const Guid IID_IExportIter;
00133 typedef IIter<IExport*, &IID_IExportIter> IExportIter;
00134 
00135 
00136 
00137 END_OA_PLUGIN_NAMESPACE
00138 
00139 #endif

Return to top of page