kim-api  2.1.4-git+v2.1.3-git-3-g4c859c7f.GNU
An Application Programming Interface (API) for the Knowledgebase of Interatomic Models (KIM).
KIM_ModelRoutineName.hpp
Go to the documentation of this file.
1 //
2 // CDDL HEADER START
3 //
4 // The contents of this file are subject to the terms of the Common Development
5 // 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 LICENSE.CDDL.
13 // If applicable, add the following below this CDDL HEADER, with the fields
14 // enclosed by brackets "[]" replaced with your own identifying information:
15 //
16 // Portions Copyright (c) [yyyy] [name of copyright owner]. All rights reserved.
17 //
18 // CDDL HEADER END
19 //
20 
21 //
22 // Copyright (c) 2016--2019, Regents of the University of Minnesota.
23 // All rights reserved.
24 //
25 // Contributors:
26 // Ryan S. Elliott
27 //
28 
29 //
30 // Release: This file is part of the kim-api.git repository.
31 //
32 
33 
34 #ifndef KIM_MODEL_ROUTINE_NAME_HPP_
35 #define KIM_MODEL_ROUTINE_NAME_HPP_
36 
37 #include <string>
38 
39 namespace KIM
40 {
52 {
53  public:
65 
70 
76  ModelRoutineName(int const id);
77 
86  ModelRoutineName(std::string const & str);
87 
96  bool Known() const;
97 
106  bool operator==(ModelRoutineName const & rhs) const;
107 
116  bool operator!=(ModelRoutineName const & rhs) const;
117 
129  std::string const & ToString() const;
130 }; // class ModelRoutineName
131 
134 namespace MODEL_ROUTINE_NAME
135 {
147 extern ModelRoutineName const Create;
148 
163 
175 extern ModelRoutineName const Compute;
176 
188 extern ModelRoutineName const Extension;
189 
201 extern ModelRoutineName const Refresh;
202 
217 
232 
244 extern ModelRoutineName const Destroy;
245 
246 
257 void GetNumberOfModelRoutineNames(int * const numberOfModelRoutineNames);
258 
274 int GetModelRoutineName(int const index,
275  ModelRoutineName * const modelRoutineName);
276 
281 {
286  bool operator()(ModelRoutineName const & a, ModelRoutineName const & b) const
287  {
289  }
290 }; // struct Comparator
291 } // namespace MODEL_ROUTINE_NAME
292 } // namespace KIM
293 
294 #endif // KIM_MODEL_ROUTINE_NAME_HPP_
ModelRoutineName const WriteParameterizedModel
The standard WriteParameterizedModel routine.
An Extensible Enumeration for the ModelRoutineName&#39;s supported by the KIM API.
ModelRoutineName()
Create an uninitialized ModelRoutineName object.
ModelRoutineName const Extension
The standard Extension routine.
ModelRoutineName const Create
The standard Create routine.
ModelRoutineName const Destroy
The standard Destroy routine.
int modelRoutineNameID
Integer identifying the specific ModelRoutineName represented.
Structure provided for use with std::map.
bool operator!=(ModelRoutineName const &rhs) const
Compares ModelRoutineName objects for inequality.
ModelRoutineName const Refresh
The standard Refresh routine.
ModelRoutineName const ComputeArgumentsCreate
The standard ComputeArgumentsCreate routine.
ModelRoutineName const ComputeArgumentsDestroy
The standard ComputeArgumentsDestroy routine.
ModelRoutineName const Compute
The standard Compute routine.
std::string const & ToString() const
Converts the object to a string.
bool operator==(ModelRoutineName const &rhs) const
Compares ModelRoutineName objects for equality.
int GetModelRoutineName(int const index, ModelRoutineName *const modelRoutineName)
Get the identity of each defined standard ModelRoutineName.
bool operator()(ModelRoutineName const &a, ModelRoutineName const &b) const
Provides an (logically unmeaningful) ordering for ModelRoutineName objects so that they can be stored...
bool Known() const
Determines if the object is a quantity known to the KIM API.
void GetNumberOfModelRoutineNames(int *const numberOfModelRoutineNames)
Get the number of standard ModelRoutineName&#39;s defined by the KIM API.