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