16#define ZYPP_USE_RESOLVER_INTERNALS 
   41    const SystemCheck & SystemCheck::instance()
 
   43        static SystemCheck _val;
 
   48  SystemCheck::SystemCheck() {
 
   59    bool SystemCheck::setFile(
const Pathname & file)
 const{
 
   60        MIL << 
"Setting checkFile to : " << file << endl;
 
   66    bool SystemCheck::setDir(
const Pathname & dir)
 const {
 
   67      MIL << 
"Setting checkFile directory to : " << dir << endl;
 
   74    const Pathname & SystemCheck::file() {
 
   78    const Pathname & SystemCheck::dir() {
 
   90    bool SystemCheck::loadFile(
Pathname & file, 
bool reset_caps)
 const{
 
   91        Target_Ptr trg( 
getZYpp()->getTarget() );
 
   93          file = trg->assertRootPrefix( file );
 
   96        if ( ! pi.isFile() ) {
 
   97            WAR << 
"Can't read " << file << 
" " << pi << endl;
 
  106        std::ifstream infile( file.c_str() );
 
  109            if ( ! l.empty() && l[0] != 
'#' )
 
  113                if (capList.size() == 2 ) {
 
  114                    CapList::iterator it = capList.begin();
 
  115                    if (*it == 
"requires") {
 
  117                    } 
else if (*it == 
"conflicts") {
 
  120                        ERR << 
"Wrong parameter: " << l << endl;
 
  123                    ERR << 
"Wrong line: " << l << endl;
 
  127        MIL << 
"Read " << pi << endl;
 
  131  bool SystemCheck::loadFiles()
 const {
 
  134                           [
this](
const Pathname & dir_r, 
const char *
const & name_r)->
bool 
  136                             const std::string wanted = 
".check";
 
  138                             if (pth.extension() != wanted) {
 
  139                               MIL << 
"Skipping " << pth << 
" (not a *.check file)" << endl;
 
  143                               MIL << 
"Reading " << pth << endl;
 
  144                               return loadFile(pth, 
false );
 
  159      str << 
"requires" << endl;
 
  160      for (CapabilitySet::const_iterator it = 
_require.begin(); it != 
_require.end(); ++it)
 
  161          str << 
"  " << *it << endl;
 
  163      str << 
"conflicts" << endl;
 
  164      for (CapabilitySet::const_iterator it = 
_conflict.begin(); it != 
_conflict.end(); ++it)
 
  165          str << 
"  " << *it << endl;
 
 
static ZConfig & instance()
Singleton ctor.
Pathname solver_checkSystemFile() const
File in which dependencies described which has to be fulfilled for a running system.
Pathname solver_checkSystemFileDir() const
Directory, which may or may not contain files in which dependencies described which has to be fulfill...
ZYpp::Ptr getZYpp()
Convenience to get the Pointer to the ZYpp instance.
Wrapper class for stat/lstat.
bool empty() const
Test for an empty path.
Simple lineparser: Traverse each line in a file.
bool next()
Advance to next line.
String related utilities and Regular expression matching.
int dirForEach(const Pathname &dir_r, const StrMatcher &matcher_r, function< bool(const Pathname &, const char *const)> fnc_r)
unsigned split(const C_Str &line_r, TOutputIterator result_r, const C_Str &sepchars_r=" \t", const Trim trim_r=NO_TRIM)
Split line_r into words.
std::string trim(const std::string &s, const Trim trim_r)
Easy-to use interface to the ZYPP dependency resolver.
std::vector< std::string > CapList
std::ostream & operator<<(std::ostream &str, const SerialNumber &obj)
std::unordered_set< Capability > CapabilitySet