IMP logo
IMP Reference Guide  2.6.0
The Integrative Modeling Platform
enums.h
Go to the documentation of this file.
1 /**
2  * \file IMP/enums.h \brief Basic types used by IMP.
3  *
4  * Copyright 2007-2016 IMP Inventors. All rights reserved.
5  *
6  */
7 
8 #ifndef IMPKERNEL_ENUMS_H
9 #define IMPKERNEL_ENUMS_H
10 
11 #include <IMP/kernel_config.h>
12 #include "compiler_macros.h"
13 #include <iostream>
14 
15 // IMPKERNEL_BEGIN_NAMESPACE
16 namespace IMP {
17 
18 //! The log levels supported by \imp
19 enum LogLevel {
20  /** Use to specify that the global log level should be used
21  (eg in IMP::Object::set_log_level())*/
22  DEFAULT = -1,
23  /** Do not output any text.*/
24  SILENT = IMP_SILENT,
25  /** Output only warnings.*/
26  WARNING = IMP_SILENT + 1,
27  /** Output only progress meter style displays and occasional printouts
28  when switching phases of work.*/
29  PROGRESS = IMP_PROGRESS,
30  /** Output a line or two per evaluation call.*/
31  TERSE = IMP_TERSE,
32  /** Produce copious output to allow someone to trace through
33  the computation.
34  */
35  VERBOSE = IMP_VERBOSE,
36  /** Log memory allocations and frees.*/
37  MEMORY = IMP_MEMORY
38 #ifndef IMP_DOXYGEN
39  ,
40  ALL_LOG = 6
41 #endif
42 };
43 
44 #if !defined(SWIG) && !defined(IMP_DOXYGEN)
45 IMPKERNELEXPORT std::istream &operator>>(std::istream &in, LogLevel &ll);
46 IMPKERNELEXPORT std::ostream &operator<<(std::ostream &in, LogLevel ll);
47 #endif
48 
49 // duplicated in IMP_kernel_exception.i otherwise IMP_kernel_exception.i
50 // is processed without seeing this definition yet.
51 #ifndef SWIG
52 //! Specify the level of runtime checks performed
53 enum CheckLevel {
54  /** Use the default check level (eg IMP::Object::set_check_level()).*/
56  /** Perform no runtime checks.*/
57  NONE = IMP_NONE,
58  /** Perform checks that \imp is being called correctly.*/
59  USAGE = IMP_USAGE,
60  /** Check internal \imp invariants. This is to be used for debugging
61  \imp.*/
62  USAGE_AND_INTERNAL = IMP_INTERNAL
63 };
64 #endif
65 #if !defined(SWIG) && !defined(IMP_DOXYGEN)
66 IMPKERNELEXPORT std::istream &operator>>(std::istream &in, CheckLevel &ll);
67 IMPKERNELEXPORT std::ostream &operator<<(std::ostream &in, CheckLevel ll);
68 #endif
69 
70 //! Specify the level of statistics to record
71 /** \see show_timings(). */
73  NO_STATISTICS = 0,
74  ALL_STATISTICS = 1
75 };
76 #if !defined(SWIG) && !defined(IMP_DOXYGEN)
77 IMPKERNELEXPORT std::istream &operator>>(std::istream &in, StatisticsLevel &ll);
78 IMPKERNELEXPORT std::ostream &operator<<(std::ostream &in, StatisticsLevel ll);
79 #endif
80 
81 } // imp
82 
83 #endif /* IMPKERNEL_ENUMS_H */
LogLevel
The log levels supported by IMP.
Definition: enums.h:19
StatisticsLevel
Specify the level of statistics to record.
Definition: enums.h:72
CheckLevel
Specify the level of runtime checks performed.
Definition: enums.h:53
Various compiler workarounds.