oaVCObserver.h

Go to the documentation of this file.
00001 // *****************************************************************************
00002 // *****************************************************************************
00003 // oaVCObserver.h
00004 //
00005 // This file contains the definition for the oaVCObserver and assiciated
00006 // classes.
00007 //
00008 // oaVCOperationEnum
00009 // oaVCMessageTypeEnum
00010 // oaVCObserverResultEnum
00011 // oaVCOperation
00012 // oaVCMessageType
00013 // oaVCObserverResult
00014 // oaVCObserver
00015 // oaVCObserverCollection
00016 // oaVCObserverIter
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-2008 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(oaVCObserver_P)
00037 #define oaVCObserver_P
00038 
00039 
00040 
00041 // *****************************************************************************
00042 // Nested includes
00043 // *****************************************************************************
00044 #include "oaObserver.h"
00045 #include "oaDMObject.h"
00046 
00047 
00048 
00049 // *****************************************************************************
00050 // Declare and define types in the OpenAccess namespace.
00051 // *****************************************************************************
00052 BEGIN_OA_NAMESPACE
00053 
00054 
00055 
00056 // *****************************************************************************
00057 // oaVCOperation
00058 // *****************************************************************************
00059 class OA_DM_DLL_API oaVCOperation {
00060 public:
00061                             oaVCOperation(oaVCOperationEnum valueIn);
00062                             oaVCOperation(const oaString &name);
00063                             ~oaVCOperation();
00064 
00065     const oaString          &getName() const;
00066 
00067                             operator                oaVCOperationEnum() const;
00068 
00069 private:
00070     oaVCOperationEnum       value;
00071 
00072     static const oaString   names[];
00073 };
00074 
00075 
00076 
00077 // *****************************************************************************
00078 // oaVCMessageType
00079 // *****************************************************************************
00080 class OA_DM_DLL_API oaVCMessageType {
00081 public:
00082                             oaVCMessageType(oaVCMessageTypeEnum valueIn);
00083                             oaVCMessageType(const oaString &name);
00084                             ~oaVCMessageType();
00085 
00086     const oaString          &getName() const;
00087 
00088                             operator                oaVCMessageTypeEnum() const;
00089 
00090 private:
00091     oaVCMessageTypeEnum     value;
00092 
00093     static const oaString   names[];
00094 };
00095 
00096 
00097 
00098 // *****************************************************************************
00099 // oaVCObserverResult
00100 // *****************************************************************************
00101 class OA_DM_DLL_API oaVCObserverResult {
00102 public:
00103                             oaVCObserverResult(oaVCObserverResultEnum valueIn);
00104                             oaVCObserverResult(const oaString &name);
00105                             ~oaVCObserverResult();
00106 
00107     const oaString          &getName() const;
00108 
00109                             operator                oaVCObserverResultEnum() const;
00110 
00111 private:
00112     oaVCObserverResultEnum  value;
00113 
00114     static const oaString   names[];
00115 };
00116 
00117 
00118 
00119 // *****************************************************************************
00120 // oaVCObserver
00121 // *****************************************************************************
00122 class OA_DM_DLL_API oaVCObserver : public oaBaseObserver {
00123 public:
00124                                 oaVCObserver(oaUInt4    priorityIn,
00125                                              oaBoolean  enabledIn = true);
00126     virtual                     ~oaVCObserver();
00127 
00128 
00129     virtual void                onVCPlugInLoad(const oaString &plugInName);
00130 
00131     virtual oaVCObserverResult  onVCMessageOut(const oaString   &plugInName,
00132                                                oaDMObject       *object,
00133                                                oaVCOperation    operation,
00134                                                oaVCMessageType  msgType,
00135                                                const oaString   &text);
00136 
00137 
00138     static void                 invokeVCPlugInLoad(const oaString &plugInName);
00139 
00140     static oaVCObserverResult   invokeVCMessageOut(const oaString   &plugInName,
00141                                                    oaDMObject       *object,
00142                                                    oaVCOperation    operation,
00143                                                    oaVCMessageType  msgType,
00144                                                    const oaString   &text);
00145 
00146 private:
00147     oaVCObserver                *next;
00148 
00149     static oaVCObserver         *first;
00150 
00151     friend class oaVCObserverCollectionPvt;
00152 };
00153 
00154 
00155 
00156 // *****************************************************************************
00157 // oaVCObserverCollection
00158 // *****************************************************************************
00159 class OA_DM_DLL_API oaVCObserverCollection : public oaObserverCollectionBase {
00160 public:
00161                             oaVCObserverCollection();
00162                             oaVCObserverCollection(const oaVCObserverCollection &copy);
00163     virtual                 ~oaVCObserverCollection();
00164 
00165     oaVCObserverCollection  &operator=(const oaVCObserverCollection &rhs);
00166 
00167     friend class oaVCObserverIter;
00168 };
00169 
00170 
00171 
00172 // *****************************************************************************
00173 // oaVCObserverIter
00174 // *****************************************************************************
00175 class OA_DM_DLL_API oaVCObserverIter : public oaObserverIterBase {
00176 public:
00177                             oaVCObserverIter(const oaVCObserverCollection &coll);
00178                             oaVCObserverIter(const oaVCObserverIter &copy);
00179     virtual                 ~oaVCObserverIter();
00180 
00181     oaVCObserverIter        &operator=(const oaVCObserverIter &rhs);
00182 };
00183 
00184 
00185 
00186 END_OA_NAMESPACE
00187 
00188 #endif

Return to top of page