1 /*                                                                            */
2 /* CDDL HEADER START                                                          */
3 /*                                                                            */
4 /* The contents of this file are subject to the terms of the Common           */
5 /* Development and Distribution License Version 1.0 (the "License").          */
6 /*                                                                            */
7 /* You can obtain a copy of the license at                                    */
8 /* http://www.opensource.org/licenses/CDDL-1.0.  See the License for the      */
9 /* specific language governing permissions and limitations under the License. */
10 /*                                                                            */
11 /* When distributing Covered Code, include this CDDL HEADER in each file and  */
12 /* include the License file in a prominent location with the name             */
13 /* LICENSE.CDDL.                                                              */
14 /* If applicable, add the following below this CDDL HEADER, with the fields   */
15 /* enclosed by brackets "[]" replaced with your own identifying information:  */
16 /*                                                                            */
17 /* Portions Copyright (c) [yyyy] [name of copyright owner].                   */
18 /* All rights reserved.                                                       */
19 /*                                                                            */
20 /* CDDL HEADER END                                                            */
21 /*                                                                            */
22 
23 /*                                                                            */
24 /* Copyright (c) 2016--2020, Regents of the University of Minnesota.          */
25 /* All rights reserved.                                                       */
26 /*                                                                            */
27 /* Contributors:                                                              */
28 /*    Ryan S. Elliott                                                         */
29 /*                                                                            */
30 
31 /*                                                                            */
32 /* Release: This file is part of the kim-api-2.2.1 package.                   */
33 /*                                                                            */
34 
35 
36 #ifndef KIM_NUMBERING_H_
37 #define KIM_NUMBERING_H_
38 
39 /**
40  ** \brief \copybrief KIM::Numbering
41  **
42  ** \sa KIM::Numbering, kim_numbering_module::kim_numbering_type
43  **
44  ** \since 2.0
45  **/
46 struct KIM_Numbering
47 {
48   /**
49    ** \brief \copybrief KIM::Numbering::numberingID
50    **
51    ** \sa KIM::Numbering::numberingID,
52    ** kim_numbering_module::kim_numbering_type::numbering_id
53    **
54    ** \since 2.0
55    **/
56   int numberingID;
57 };
58 #ifndef KIM_NUMBERING_DEFINED_
59 #define KIM_NUMBERING_DEFINED_
60 /**
61  ** \brief Forward declaration.
62  **
63  ** \since 2.0
64  **/
65 typedef struct KIM_Numbering KIM_Numbering;
66 #endif
67 
68 /**
69  ** \brief \copybrief KIM::Numbering::Numbering(std::string const &)
70  **
71  ** \sa KIM::Numbering::Numbering(std::string const &),
72  ** kim_numbering_module::kim_from_string
73  **
74  ** \since 2.0
75  **/
76 KIM_Numbering KIM_Numbering_FromString(char const * const str);
77 
78 /**
79  ** \brief \copybrief KIM::Numbering::Known
80  **
81  ** \sa KIM::Numbering::Known, kim_numbering_module::kim_known
82  **
83  ** \since 2.0
84  **/
85 int KIM_Numbering_Known(KIM_Numbering const numbering);
86 
87 /**
88  ** \brief \copybrief KIM::Numbering::operator==()
89  **
90  ** \sa KIM::Numbering::operator==(), kim_numbering_module::operator(.eq.)
91  **
92  ** \since 2.0
93  **/
94 int KIM_Numbering_Equal(KIM_Numbering const lhs, KIM_Numbering const rhs);
95 
96 /**
97  ** \brief \copybrief KIM::Numbering::operator!=()
98  **
99  ** \sa KIM::Numbering::operator!=(), kim_numbering_module::operator(.ne.)
100  **
101  ** \since 2.0
102  **/
103 int KIM_Numbering_NotEqual(KIM_Numbering const lhs, KIM_Numbering const rhs);
104 
105 /**
106  ** \brief \copybrief KIM::Numbering::ToString
107  **
108  ** \sa KIM::Numbering::ToString, kim_numbering_module::kim_to_string
109  **
110  ** \since 2.0
111  **/
112 char const * KIM_Numbering_ToString(KIM_Numbering const numbering);
113 
114 /**
115  ** \brief \copybrief KIM::NUMBERING::zeroBased
116  **
117  ** \sa KIM::NUMBERING::zeroBased,
118  ** kim_numbering_module::kim_numbering_zero_based
119  **
120  ** \since 2.0
121  **/
122 extern KIM_Numbering const KIM_NUMBERING_zeroBased;
123 
124 /**
125  ** \brief \copybrief KIM::NUMBERING::oneBased
126  **
127  ** \sa KIM::NUMBERING::oneBased, kim_numbering_module::kim_numbering_one_based
128  **
129  ** \since 2.0
130  **/
131 extern KIM_Numbering const KIM_NUMBERING_oneBased;
132 
133 /**
134  ** \brief \copybrief KIM::NUMBERING::GetNumberOfNumberings
135  **
136  ** \sa KIM::NUMBERING::GetNumberOfNumberings,
137  ** kim_numbering_module::kim_get_number_of_numberings
138  **
139  ** \since 2.0
140  **/
141 void KIM_NUMBERING_GetNumberOfNumberings(int * const numberOfNumberings);
142 
143 /**
144  ** \brief \copybrief KIM::NUMBERING::GetNumbering
145  **
146  ** \sa KIM::NUMBERING::GetNumbering, kim_numbering_module::kim_get_numbering
147  **
148  ** \since 2.0
149  **/
150 int KIM_NUMBERING_GetNumbering(int const index,
151                                KIM_Numbering * const numbering);
152 
153 #endif /* KIM_NUMBERING_H_ */
154