libzypp 17.31.23
TriBool.h
Go to the documentation of this file.
1/*---------------------------------------------------------------------\
2| ____ _ __ __ ___ |
3| |__ / \ / / . \ . \ |
4| / / \ V /| _/ _/ |
5| / /__ | | | | | | |
6| /_____||_| |_| |_| |
7| |
8\---------------------------------------------------------------------*/
12#ifndef ZYPP_TRIBOOL_H
13#define ZYPP_TRIBOOL_H
14
15#include <iosfwd>
16#include <string>
17#include <boost/logic/tribool.hpp>
18
20namespace zypp
21{
22
40 typedef boost::logic::tribool TriBool;
41 using boost::logic::tribool;
42 using boost::logic::indeterminate;
43
44 inline std::string asString( const TriBool & val_r, const std::string & istr_r = std::string(),
45 const std::string & tstr_r = std::string(),
46 const std::string & fstr_r = std::string() )
47 {
48 std::string ret;
49 if (indeterminate(val_r))
50 ret = ( istr_r.empty() ? "indeterminate" : istr_r );
51 else if (val_r)
52 ret = ( tstr_r.empty() ? "true" : tstr_r );
53 else
54 ret = ( fstr_r.empty() ? "false" : fstr_r );
55 return ret;
56 }
57
59 inline bool tri2bool( const TriBool & val_r, bool default_r )
60 { return indeterminate(val_r) ? default_r : bool(val_r); }
61
63} // namespace zypp
65namespace boost
66{
67 namespace logic
68 {
70 inline std::ostream & operator<<(std::ostream & s, const tribool & obj)
71 { return s << zypp::asString( obj ); }
72
74 inline bool sameTriboolState( tribool lhs, tribool rhs )
75 { return( ( indeterminate(lhs) && indeterminate(rhs) ) || ( bool )( lhs == rhs ) ); }
76 }
77}
78#endif // ZYPP_TRIBOOL_H
std::ostream & operator<<(std::ostream &str, const zypp::sat::detail::CDataiterator *obj)
Definition: LookupAttr.cc:807
boost::logic::tribool TriBool
3-state boolean logic (true, false and indeterminate).
Definition: String.h:30
Boost libraries.
std::string asString(TInt val, char zero='0', char one='1')
For printing bits.
Definition: Bit.h:57
Easy-to use interface to the ZYPP dependency resolver.
Definition: CodePitfalls.doc:2
bool tri2bool(const TriBool &val_r, bool default_r)
Convert TriBool to bool returning default_r if indeterminate.
Definition: TriBool.h:59
std::string asString(const Patch::Category &obj)
Definition: Patch.cc:122