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_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--2019, 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.git repository. */
33 /* */
34 
35 
36 #ifndef KIM_LOG_H_
37 #define KIM_LOG_H_
38 
39 /* Forward declarations */
40 #ifndef KIM_LOG_VERBOSITY_DEFINED_
41 #define KIM_LOG_VERBOSITY_DEFINED_
42 
48 #endif
49 
50 
51 #ifndef KIM_LOG_DEFINED_
52 #define KIM_LOG_DEFINED_
53 
60 typedef struct KIM_Log KIM_Log;
61 #endif
62 
70 int KIM_Log_Create(KIM_Log ** const log);
71 
79 void KIM_Log_Destroy(KIM_Log ** const log);
80 
89 void KIM_Log_PushDefaultVerbosity(KIM_LogVerbosity const logVerbosity);
90 
100 
108 char const * KIM_Log_GetID(KIM_Log const * const log);
109 
117 void KIM_Log_SetID(KIM_Log * const log, char const * const id);
118 
126 void KIM_Log_PushVerbosity(KIM_Log * const log,
127  KIM_LogVerbosity const logVerbosity);
128 
136 void KIM_Log_PopVerbosity(KIM_Log * const log);
137 
145 void KIM_Log_LogEntry(KIM_Log const * const log,
146  KIM_LogVerbosity const logVerbosity,
147  char const * const message,
148  int const lineNumber,
149  char const * const fileName);
150 
151 #endif /* KIM_LOG_H_ */
void KIM_Log_Destroy(KIM_Log **const log)
Destroy a previously Log::Create'd object.
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:60
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.
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_PushDefaultVerbosity(KIM_LogVerbosity const logVerbosity)
Push a new default LogVerbosity onto the KIM API global default verbosity stack.