home
about
news
download
doc
source
systems
tests
bugs
contact
IMP Reference Guide
develop.63b38c487d,2024/12/21
The Integrative Modeling Platform
IMP Manual
Reference Guide
Tutorial Index
Modules
Classes
Examples
include
IMP
version 20241221.develop.63b38c487d
WarningContext.h
Go to the documentation of this file.
1
/**
2
* \file IMP/WarningContext.h
3
* \brief Logging and error reporting support.
4
*
5
* Copyright 2007-2022 IMP Inventors. All rights reserved.
6
*
7
*/
8
9
#ifndef IMPKERNEL_CREATE_WARNING_CONTEXT_H
10
#define IMPKERNEL_CREATE_WARNING_CONTEXT_H
11
12
#include <IMP/kernel_config.h>
13
#include "
showable_macros.h
"
14
#include <boost/unordered_set.hpp>
15
16
IMPKERNEL_BEGIN_NAMESPACE
17
#if IMP_HAS_LOG
18
19
//! Warnings with the same key within the context are only output once.
20
struct
IMPKERNELEXPORT
WarningContext
{
21
mutable
boost::unordered_set<std::string> data_;
22
23
public
:
24
void
add_warning(std::string key, std::string warning)
const
;
25
void
clear_warnings()
const
;
26
void
dump_warnings()
const
;
27
~
WarningContext
();
28
IMP_SHOWABLE_INLINE
(
WarningContext
, out << data_.size() <<
" warnings"
);
29
};
30
#else
31
struct
IMPKERNELEXPORT
WarningContext
{
32
public
:
33
WarningContext
();
34
void
add_warning(std::string, std::string)
const
{}
35
void
clear_warnings()
const
{}
36
void
dump_warnings()
const
{}
37
void
show
(std::ostream &)
const
{}
38
};
39
#endif
40
41
IMPKERNEL_END_NAMESPACE
42
43
#endif
/* IMPKERNEL_CREATE_WARNING_CONTEXT_H */
IMP_SHOWABLE_INLINE
#define IMP_SHOWABLE_INLINE(Name, how_to_show)
Declare the methods needed by an object that can be printed.
Definition:
showable_macros.h:51
IMP::WarningContext
Warnings with the same key within the context are only output once.
Definition:
WarningContext.h:20
IMP::core::show
std::ostream & show(Hierarchy h, std::ostream &out=std::cout)
Print the hierarchy using a given decorator to display each node.
Definition:
core/Hierarchy.h:423
showable_macros.h
Macros to help with objects that can be printed to a stream.