libzypp 17.37.10

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
20 namespace zypp
21{
22
40 using TriBool = boost::logic::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
65 namespace 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
operator<<
std::ostream & operator<<(std::ostream &str, const zypp::sat::detail::CDataiterator *obj)
Definition LookupAttr.cc:808
bool
boost::logic
Definition String.h:30
boost
Definition String.h:30
zypp
Easy-to use interface to the ZYPP dependency resolver.
Definition Application.cc:20
zypp::tri2bool
bool tri2bool(const TriBool &val_r, bool default_r)
Convert TriBool to bool returning default_r if indeterminate.
Definition TriBool.h:59
zypp::TriBool
boost::logic::tribool TriBool
3-state boolean logic (true, false and indeterminate).
Definition String.h:31
zypp::asString
std::string asString(const Patch::Category &obj)
Definition Patch.cc:122