00001 /*---------------------------------------------------------------------\ 00002 | ____ _ __ __ ___ | 00003 | |__ / \ / / . \ . \ | 00004 | / / \ V /| _/ _/ | 00005 | / /__ | | | | | | | 00006 | /_____||_| |_| |_| | 00007 | | 00008 \---------------------------------------------------------------------*/ 00012 #ifndef ZYPP_DETAIL_RESOLVABLEIMPL_H 00013 #define ZYPP_DETAIL_RESOLVABLEIMPL_H 00014 00015 #include "zypp/Resolvable.h" 00016 #include "zypp/CapFactory.h" 00017 #include "zypp/NVRAD.h" 00018 00020 namespace zypp 00021 { 00022 00024 // 00025 // CLASS NAME : Resolvable::Impl 00026 // 00031 struct Resolvable::Impl 00032 { 00034 Impl( const Kind & kind_r, const NVRAD & nvrad_r ); 00035 00036 public: 00038 const Kind & kind() const 00039 { return _kind; } 00041 const std::string & name() const 00042 { return _name; } 00044 const Edition & edition() const 00045 { return _edition; } 00047 const Arch & arch() const 00048 { return _arch; } 00050 const Dependencies & deps() const 00051 { return _deps; } 00052 00055 void injectProvides( const Capability & cap_r ) 00056 { _deps[Dep::PROVIDES].insert( cap_r ); } 00057 void injectRequires( const Capability & cap_r ) 00058 { _deps[Dep::REQUIRES].insert( cap_r ); } 00060 00062 std::ostream & dumpOn( std::ostream & str ) const; 00063 00064 private: 00066 Kind _kind; 00068 std::string _name; 00070 Edition _edition; 00072 Arch _arch; 00074 Dependencies _deps; 00075 }; 00077 00079 } // namespace zypp 00081 #endif // ZYPP_DETAIL_RESOLVABLEIMPL_H