kim-api  2.2.1+v2.2.1.GNU.GNU.
An Application Programming Interface (API) for the Knowledgebase of Interatomic Models (KIM).
KIM_Log.h
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 */
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_LOG_H_
37 #define KIM_LOG_H_
38 
39 #ifndef KIM_FUNCTION_TYPES_H_
40 #include "KIM_FunctionTypes.h" /* IWYU pragma: export */
41 #endif
42 
43 /* Forward declarations */
44 #ifndef KIM_LOG_VERBOSITY_DEFINED_
45 #define KIM_LOG_VERBOSITY_DEFINED_
46 
52 #endif
53 
54 #ifndef KIM_LANGUAGE_NAME_DEFINED_
55 #define KIM_LANGUAGE_NAME_DEFINED_
56 
62 #endif
63 
64 
65 #ifndef KIM_LOG_DEFINED_
66 #define KIM_LOG_DEFINED_
67 
74 typedef struct KIM_Log KIM_Log;
75 #endif
76 
84 int KIM_Log_Create(KIM_Log ** const log);
85 
93 void KIM_Log_Destroy(KIM_Log ** const log);
94 
103 void KIM_Log_PushDefaultVerbosity(KIM_LogVerbosity const logVerbosity);
104 
114 
123 void KIM_Log_PushDefaultPrintFunction(KIM_LanguageName const languageName,
124  KIM_Function * const fptr);
125 
135 
143 char const * KIM_Log_GetID(KIM_Log const * const log);
144 
152 void KIM_Log_SetID(KIM_Log * const log, char const * const id);
153 
161 void KIM_Log_PushVerbosity(KIM_Log * const log,
162  KIM_LogVerbosity const logVerbosity);
163 
171 void KIM_Log_PopVerbosity(KIM_Log * const log);
172 
180 void KIM_Log_LogEntry(KIM_Log const * const log,
181  KIM_LogVerbosity const logVerbosity,
182  char const * const message,
183  int const lineNumber,
184  char const * const fileName);
185 
186 #endif /* KIM_LOG_H_ */
void KIM_Log_Destroy(KIM_Log **const log)
Destroy a previously Log::Create'd object.
void KIM_Log_PopDefaultPrintFunction()
Pop a log PrintFunction from the KIM API global default log PrintFunction stack.
int KIM_Log_Create(KIM_Log **const log)
Create a new KIM API Log object.
struct KIM_Log KIM_Log
Provides the logging interface for the KIM API.
Definition: KIM_Log.h:74
void() KIM_Function(void)
Generic function type.
void KIM_Log_LogEntry(KIM_Log const *const log, KIM_LogVerbosity const logVerbosity, char const *const message, int const lineNumber, char const *const fileName)
Write a log entry into the log file.
void KIM_Log_PopVerbosity(KIM_Log *const log)
Pop a LogVerbosity from the Log object's verbosity stack.
An Extensible Enumeration for the LanguageName's supported by the KIM API.
void KIM_Log_PushVerbosity(KIM_Log *const log, KIM_LogVerbosity const logVerbosity)
Push a new LogVerbosity onto the Log object's verbosity stack.
void KIM_Log_SetID(KIM_Log *const log, char const *const id)
Set the identity of the Log object.
An Extensible Enumeration for the LogVerbosity's supported by the KIM API.
char const * KIM_Log_GetID(KIM_Log const *const log)
Get the identity of the Log object.
void KIM_Log_PopDefaultVerbosity()
Pop a LogVerbosity from the KIM API global default verbosity stack.
void KIM_Log_PushDefaultPrintFunction(KIM_LanguageName const languageName, KIM_Function *const fptr)
Push a new default log PrintFunction onto the KIM API global default log PrintFunction stack...
void KIM_Log_PushDefaultVerbosity(KIM_LogVerbosity const logVerbosity)
Push a new default LogVerbosity onto the KIM API global default verbosity stack.