1 ///////////////////////////////////////////////////////////////////////////////
2 // BSD 3-Clause License
3 //
4 // Copyright (c) 2020, The Regents of the University of California
5 // All rights reserved.
6 //
7 // Redistribution and use in source and binary forms, with or without
8 // modification, are permitted provided that the following conditions are met:
9 //
10 // * Redistributions of source code must retain the above copyright notice, this
11 //   list of conditions and the following disclaimer.
12 //
13 // * Redistributions in binary form must reproduce the above copyright notice,
14 //   this list of conditions and the following disclaimer in the documentation
15 //   and/or other materials provided with the distribution.
16 //
17 // * Neither the name of the copyright holder nor the names of its
18 //   contributors may be used to endorse or promote products derived from
19 //   this software without specific prior written permission.
20 //
21 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
25 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 // POSSIBILITY OF SUCH DAMAGE.
32 
33 // Generator Code Begin Header
34 #pragma once
35 
36 #include "dbCore.h"
37 #include "dbVector.h"
38 #include "odb.h"
39 // User Code Begin Includes
40 // User Code End Includes
41 
42 namespace odb {
43 
44 class dbIStream;
45 class dbOStream;
46 class dbDiff;
47 class _dbDatabase;
48 // User Code Begin Classes
49 // User Code End Classes
50 
51 struct dbTechLayerEolExtensionRuleFlags
52 {
53   bool parallel_only_ : 1;
54   uint spare_bits_ : 31;
55 };
56 // User Code Begin Structs
57 // User Code End Structs
58 
59 class _dbTechLayerEolExtensionRule : public _dbObject
60 {
61  public:
62   // User Code Begin Enums
63   // User Code End Enums
64 
65   dbTechLayerEolExtensionRuleFlags flags_;
66   int spacing_;
67   dbVector<std::pair<int, int>> extension_tbl_;
68 
69   // User Code Begin Fields
70   // User Code End Fields
71   _dbTechLayerEolExtensionRule(_dbDatabase*,
72                                const _dbTechLayerEolExtensionRule& r);
73   _dbTechLayerEolExtensionRule(_dbDatabase*);
74   ~_dbTechLayerEolExtensionRule();
75   bool operator==(const _dbTechLayerEolExtensionRule& rhs) const;
76   bool operator!=(const _dbTechLayerEolExtensionRule& rhs) const
77   {
78     return !operator==(rhs);
79   }
80   bool operator<(const _dbTechLayerEolExtensionRule& rhs) const;
81   void differences(dbDiff& diff,
82                    const char* field,
83                    const _dbTechLayerEolExtensionRule& rhs) const;
84   void out(dbDiff& diff, char side, const char* field) const;
85   // User Code Begin Methods
86   // User Code End Methods
87 };
88 dbIStream& operator>>(dbIStream& stream, _dbTechLayerEolExtensionRule& obj);
89 dbOStream& operator<<(dbOStream& stream,
90                       const _dbTechLayerEolExtensionRule& obj);
91 // User Code Begin General
92 // User Code End General
93 }  // namespace odb
94    // Generator Code End Header
95