00001 /* (c) Copyright 2004-2005, Cadence Design Systems, Inc. All rights reserved. 00002 00003 This file is part of the OA Gear distribution. See the COPYING file in 00004 the top level OA Gear directory for copyright and licensing information. */ 00005 00006 /* 00007 Author: Zhong Xiu <zxiu@andrew.cmu.edu> 00008 00009 ChangeLog: 00010 2004-09-15: ChangeLog started 00011 */ 00012 00013 #if !defined(oagTimerExtDelay_P) 00014 #define oagTimerExtDelay_P 00015 00016 #include <float.h> 00017 #include <vector> 00018 #include "oaDesignDB.h" 00019 00020 #include "oagTimerModel.h" 00021 00022 using namespace oa; 00023 00024 namespace oagTimer { 00025 00031 class TPointMaster; 00032 00033 class TimerExtDelay { 00034 friend class Timer; 00035 friend class Report; 00036 00037 public: 00039 TimerExtDelay() { 00040 delay = 0.0; 00041 } 00043 ~TimerExtDelay() {} 00044 00045 private: 00047 DelayType delay; 00048 00050 static oaVoidPointerAppDef<oaOccTerm> *termAppDef; 00051 }; 00052 00057 class TimerDrivingCell { 00058 friend class Timer; 00059 friend class TPointMaster; 00060 friend class Report; 00061 00062 public: 00064 TimerDrivingCell() { 00065 } 00067 ~TimerDrivingCell() {} 00068 00069 private: 00071 TPointMaster *driver; 00072 00074 static oaVoidPointerAppDef<oaOccTerm> *termAppDef; 00075 }; 00076 00081 class TimerFanoutLoad { 00082 friend class Timer; 00083 friend class Report; 00084 00085 public: 00087 TimerFanoutLoad() { 00088 load = 0.0; 00089 } 00091 ~TimerFanoutLoad() {} 00092 00093 private: 00095 double load; 00096 00098 static oaVoidPointerAppDef<oaOccTerm> *termAppDef; 00099 }; 00100 00106 class TimerInputTransition { 00107 friend class Timer; 00108 friend class Report; 00109 00110 public: 00112 TimerInputTransition() { 00113 transition = 0.0; 00114 } 00116 ~TimerInputTransition() {} 00117 00118 private: 00120 TimeType transition; 00121 00123 static oaVoidPointerAppDef<oaOccTerm> *termAppDef; 00124 }; 00125 00126 } 00127 00128 #endif