libzypp 17.31.0
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} // namespace zypp
61namespace boost
62{
63 namespace logic
64 {
66 inline std::ostream & operator<<(std::ostream & s, const tribool & obj)
67 { return s << zypp::asString( obj ); }
68
70 inline bool sameTriboolState( tribool lhs, tribool rhs )
71 { return( ( indeterminate(lhs) && indeterminate(rhs) ) || ( bool )( lhs == rhs ) ); }
72 }
73}
74#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.
Easy-to use interface to the ZYPP dependency resolver.
Definition: CodePitfalls.doc:2
std::string asString(const Patch::Category &obj)
Definition: Patch.cc:122