zypp::Capability Class Reference

Resolvable capabilitiy. More...

#include <Capability.h>

List of all members.

Public Types

typedef
capability::CapabilityTraits::KindType 
Kind

Public Member Functions

 Capability ()
 DefaultCtor creating noCap.
virtual ~Capability ()
 Dtor.
const Kindkind () const
 Kind of Capability.
const Resolvable::Kindrefers () const
 Kind of Resolvable the Capability refers to.
bool relevant () const
 Whether to consider this Capability.
CapMatch matches (const Capability &rhs) const
 Return whether the Capabilities match.
std::string asString () const
 More or less human readable representation as string.
std::string index () const
 accessors needed by solver/zmd

Static Public Attributes

static const Capability noCap
 Constant representing no Capabiliy.

Private Types

typedef
capability::CapabilityImpl 
Impl
typedef
capability::CapabilityImpl_Ptr 
Impl_Ptr
typedef
capability::CapabilityImpl_constPtr 
Impl_constPtr

Private Member Functions

 Capability (Impl_Ptr impl_r)
 Factory ctor.

Private Attributes

RW_pointer< Impl,
rw_pointer::Intrusive
< Impl > > 
_pimpl
 Pointer to implementation.

Friends

class CapOrder
 Ordering for use in CapSet.
class CapFactory
 Factory.
class capability::CapabilityImpl
bool operator== (const Capability &lhs, const Capability &rhs)
std::ostream & operator<< (std::ostream &str, const Capability &obj)
 Stream output.

Related Functions

(Note that these are not member functions.)

bool operator!= (const Capability &lhs, const Capability &rhs)


Detailed Description

Resolvable capabilitiy.

Capability is created by a Factory class. Only a default ctor creating a dummy capability is provided.

   Capability cap;
   try
     {
       cap = CapFactory().parse( ResTraits<Patch>::kind,
                                 parsed.name,
                                 parsed.op,
                                 Edition( parsed.ver,
                                          parsed.rel,
                                          parsed.epoch ) );
     }
   catch ( Exception & excpt_r )
     {
       ERR << excpt_r << endl;
       ... Or maybe just WAR, or ?
     }
See also:
CapFactory: Factory creating Capability.
Invariant:
Nonzero _pimpl

Unified _pimpl asserted by CapFactory.

Todo:
Need a trival return from matches. E.g. Conditional capabilities must be able to indicate that they should be treated as if they were not present at all, if the precondition does no apply. Same for the default Capability.

Definition at line 71 of file Capability.h.


Member Typedef Documentation

typedef capability::CapabilityTraits::KindType zypp::Capability::Kind

Definition at line 80 of file Capability.h.

typedef capability::CapabilityImpl zypp::Capability::Impl [private]

Definition at line 123 of file Capability.h.

typedef capability::CapabilityImpl_Ptr zypp::Capability::Impl_Ptr [private]

Definition at line 124 of file Capability.h.

typedef capability::CapabilityImpl_constPtr zypp::Capability::Impl_constPtr [private]

Definition at line 125 of file Capability.h.


Constructor & Destructor Documentation

zypp::Capability::Capability (  ) 

DefaultCtor creating noCap.

Definition at line 31 of file Capability.cc.

zypp::Capability::~Capability (  )  [virtual]

Dtor.

Definition at line 49 of file Capability.cc.

zypp::Capability::Capability ( Impl_Ptr  impl_r  )  [explicit, private]

Factory ctor.

Definition at line 40 of file Capability.cc.


Member Function Documentation

const Capability::Kind & zypp::Capability::kind (  )  const

Kind of Capability.

Definition at line 52 of file Capability.cc.

References _pimpl.

Referenced by zypp::isKind().

const Resolvable::Kind & zypp::Capability::refers (  )  const

Kind of Resolvable the Capability refers to.

Definition at line 55 of file Capability.cc.

References _pimpl.

Referenced by zypp::solver::detail::helixXML(), zypp::capfilter::ByRefers::operator()(), zypp::refersTo(), and zypp::storage::toXML().

bool zypp::Capability::relevant (  )  const

Whether to consider this Capability.

Evaluates the Capabilities pre-condition (if any), and returns whether the condition applies. If not, the Capability is to be ignored.

Definition at line 58 of file Capability.cc.

References _pimpl.

CapMatch zypp::Capability::matches ( const Capability rhs  )  const

Return whether the Capabilities match.

If either Capability is not relevant, CapMatch::irrelevant is returned.

Definition at line 61 of file Capability.cc.

References _pimpl.

Referenced by zypp::solver::detail::ConflictProcess::operator()(), zypp::resfilter::ByCapMatch::operator()(), zypp::MatchesCapability::operator()(), zypp::capfilter::ByCapMatch::operator()(), zypp::solver::detail::QueueItemRequire::process(), and zypp::ui::PatternExpander::Impl::providedByFilter().

std::string zypp::Capability::asString (  )  const

More or less human readable representation as string.

Definition at line 64 of file Capability.cc.

References _pimpl.

Referenced by zypp::solver::detail::helixXML(), zypp::solver::detail::ResolverInfoNeededBy::message(), zypp::solver::detail::ResolverInfoMissingReq::message(), and zypp::solver::detail::ResolverInfo::toString().

std::string zypp::Capability::index (  )  const

accessors needed by solver/zmd

Deprecated

Definition at line 67 of file Capability.cc.

References _pimpl.

Referenced by zypp::ResPool::forEachMatchIn(), zypp::forEachMatchIn(), zypp::solver::detail::ConflictProcess::operator()(), zypp::capfilter::ByIndex::operator()(), zypp::solver::detail::QueueItemUninstall::process(), zypp::solver::detail::QueueItemRequire::process(), zypp::solver::detail::QueueItemInstall::process(), zypp::solver::detail::QueueItemConflict::process(), zypp::ui::PatternExpander::Impl::providedBy(), zypp::solver::detail::InstallOrder::rdfsvisit(), zypp::solver::detail::ResolverContext::requirementIsMet(), and zypp::solver::detail::ResolverContext::requirementIsPossible().


Friends And Related Function Documentation

friend class CapOrder [friend]

Ordering for use in CapSet.

Definition at line 74 of file Capability.h.

friend class CapFactory [friend]

Factory.

Definition at line 128 of file Capability.h.

friend class capability::CapabilityImpl [friend]

Definition at line 136 of file Capability.h.

bool operator== ( const Capability lhs,
const Capability rhs 
) [friend]

Definition at line 162 of file Capability.h.

std::ostream & operator<< ( std::ostream &  str,
const Capability obj 
) [friend]

Stream output.

Definition at line 81 of file Capability.cc.

bool operator!= ( const Capability lhs,
const Capability rhs 
) [related]

Definition at line 166 of file Capability.h.


Member Data Documentation

const Capability zypp::Capability::noCap [static]

Constant representing no Capabiliy.

It refers to no kind of Resolvable, and matches returns returns CapMatch::irrelevant.

Definition at line 93 of file Capability.h.

Referenced by zypp::solver::detail::ResolverInfoNeededBy::dumpOn(), zypp::solver::detail::QueueItemUninstall::dumpOn(), zypp::solver::detail::QueueItemInstall::dumpOn(), zypp::solver::detail::ResolverInfoNeededBy::message(), and zypp::solver::detail::NoInstallableProviders::operator()().

RW_pointer<Impl,rw_pointer::Intrusive<Impl> > zypp::Capability::_pimpl [private]

Pointer to implementation.

Definition at line 138 of file Capability.h.

Referenced by asString(), zypp::capability::CapabilityImpl::backdoor(), zypp::CapFactory::encode(), zypp::capability::CapabilityImpl::getSplitInfo(), index(), kind(), matches(), zypp::CapOrder::operator()(), zypp::operator<<(), refers(), and relevant().


The documentation for this class was generated from the following files:
Generated on Tue Sep 25 19:23:14 2007 for libzypp by  doxygen 1.5.3