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 ©); 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 ©); 00179 virtual ~oaVCObserverIter(); 00180 00181 oaVCObserverIter &operator=(const oaVCObserverIter &rhs); 00182 }; 00183 00184 00185 00186 END_OA_NAMESPACE 00187 00188 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.