1 // ***************************************************************************** 2 // ***************************************************************************** 3 // Copyright 2012 - 2017, Cadence Design Systems 4 // 5 // This file is part of the Cadence LEF/DEF Open Source 6 // Distribution, Product Version 5.8. 7 // 8 // Licensed under the Apache License, Version 2.0 (the "License"); 9 // you may not use this file except in compliance with the License. 10 // You may obtain a copy of the License at 11 // 12 // http://www.apache.org/licenses/LICENSE-2.0 13 // 14 // Unless required by applicable law or agreed to in writing, software 15 // distributed under the License is distributed on an "AS IS" BASIS, 16 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 17 // implied. See the License for the specific language governing 18 // permissions and limitations under the License. 19 // 20 // For updates, support, or to become part of the LEF/DEF Community, 21 // check www.openeda.org for details. 22 // 23 // $Author: dell $ 24 // $Revision: #1 $ 25 // $Date: 2017/06/06 $ 26 // $State: $ 27 // ***************************************************************************** 28 // ***************************************************************************** 29 30 #ifndef lefrCallbacks_h 31 #define lefrCallbacks_h 32 33 #include "lefiKRDefs.hpp" 34 #include "lefrReader.hpp" 35 36 BEGIN_LEFDEF_PARSER_NAMESPACE 37 38 class lefrCallbacks { 39 public: 40 lefrCallbacks(); 41 static void reset(); 42 43 // List of call back routines 44 // These are filled in by the user. See the 45 // "set" routines at the end of the file 46 lefrDoubleCbkFnType AntennaInoutCbk; 47 lefrDoubleCbkFnType AntennaInputCbk; 48 lefrDoubleCbkFnType AntennaOutputCbk; 49 lefrStringCbkFnType ArrayBeginCbk; 50 lefrArrayCbkFnType ArrayCbk; 51 lefrStringCbkFnType ArrayEndCbk; 52 lefrStringCbkFnType BusBitCharsCbk; 53 lefrIntegerCbkFnType CaseSensitiveCbk; 54 lefrStringCbkFnType ClearanceMeasureCbk; 55 lefrCorrectionTableCbkFnType CorrectionTableCbk; 56 lefrDensityCbkFnType DensityCbk; 57 lefrDoubleCbkFnType DielectricCbk; 58 lefrStringCbkFnType DividerCharCbk; 59 lefrDoubleCbkFnType EdgeRateScaleFactorCbk; 60 lefrDoubleCbkFnType EdgeRateThreshold1Cbk; 61 lefrDoubleCbkFnType EdgeRateThreshold2Cbk; 62 lefrStringCbkFnType ExtensionCbk; 63 lefrIntegerCbkFnType FixedMaskCbk; 64 lefrVoidCbkFnType IRDropBeginCbk; 65 lefrIRDropCbkFnType IRDropCbk; 66 lefrVoidCbkFnType IRDropEndCbk; 67 lefrDoubleCbkFnType InoutAntennaCbk; 68 lefrDoubleCbkFnType InputAntennaCbk; 69 lefrLayerCbkFnType LayerCbk; 70 lefrVoidCbkFnType LibraryEndCbk; 71 lefrStringCbkFnType MacroBeginCbk; 72 lefrMacroCbkFnType MacroCbk; 73 lefrStringCbkFnType MacroClassTypeCbk; 74 lefrStringCbkFnType MacroEndCbk; 75 lefrIntegerCbkFnType MacroFixedMaskCbk; 76 lefrMacroNumCbkFnType MacroOriginCbk; 77 lefrMacroSiteCbkFnType MacroSiteCbk; 78 lefrMacroForeignCbkFnType MacroForeignCbk; 79 lefrMacroNumCbkFnType MacroSizeCbk; 80 lefrDoubleCbkFnType ManufacturingCbk; 81 lefrMaxStackViaCbkFnType MaxStackViaCbk; 82 lefrMinFeatureCbkFnType MinFeatureCbk; 83 lefrStringCbkFnType NoWireExtensionCbk; 84 lefrNoiseMarginCbkFnType NoiseMarginCbk; 85 lefrNoiseTableCbkFnType NoiseTableCbk; 86 lefrNonDefaultCbkFnType NonDefaultCbk; 87 lefrObstructionCbkFnType ObstructionCbk; 88 lefrDoubleCbkFnType OutputAntennaCbk; 89 lefrPinCbkFnType PinCbk; 90 lefrVoidCbkFnType PropBeginCbk; 91 lefrPropCbkFnType PropCbk; 92 lefrVoidCbkFnType PropEndCbk; 93 lefrSiteCbkFnType SiteCbk; 94 lefrVoidCbkFnType SpacingBeginCbk; 95 lefrSpacingCbkFnType SpacingCbk; 96 lefrVoidCbkFnType SpacingEndCbk; 97 lefrTimingCbkFnType TimingCbk; 98 lefrUnitsCbkFnType UnitsCbk; 99 lefrUseMinSpacingCbkFnType UseMinSpacingCbk; 100 lefrDoubleCbkFnType VersionCbk; 101 lefrStringCbkFnType VersionStrCbk; 102 lefrViaCbkFnType ViaCbk; 103 lefrViaRuleCbkFnType ViaRuleCbk; 104 }; 105 106 extern lefrCallbacks *lefCallbacks; 107 108 END_LEFDEF_PARSER_NAMESPACE 109 110 USE_LEFDEF_PARSER_NAMESPACE 111 112 #endif 113