*/
std::string asString() const;
+ /** String representation <tt>"ident-edition.arch(repo)"</tt> or \c "noSolvable" */
+ std::string asUserString() const;
+
/** Test whether two Solvables have the same content.
* Basically the same name, edition, arch, vendor and buildtime.
*/
ResKind kind() const { return _kind; }
IdString name() const { return _name; }
- /** Return an idents explicit kind prefix, or \ref ResKind() if none.
- * Mainly to detect whether a given ident string is explicitly prefixed
- * by a known kind (e.g \c pattern:foo or \c package:foo).
- */
- static ResKind explicitKind( IdString ident_r ) { return explicitKind( ident_r.c_str() ); }
- static ResKind explicitKind( const char * ident_r );
- static ResKind explicitKind( const std::string & ident_r ) { return explicitKind( ident_r.c_str() ); }
-
private:
IdString _ident;
ResKind _kind;
/** \relates Solvable More verbose stream output including dependencies */
std::ostream & dumpOn( std::ostream & str, const Solvable & obj );
+ /** \relates Solvable XML output */
+ std::ostream & dumpAsXmlOn( std::ostream & str, const Solvable & obj );
+
/** \relates Solvable */
inline bool operator==( const Solvable & lhs, const Solvable & rhs )
{ return lhs.get() == rhs.get(); }
inline bool sameNVRA( Solvable lhs, Solvable rhs )
{ return lhs.sameNVRA( rhs ); }
+
+ /** \relates Solvable Compare according to \a kind and \a name. */
+ inline int compareByN( const Solvable & lhs, const Solvable & rhs )
+ {
+ int res = 0;
+ if ( lhs != rhs )
+ {
+ if ( (res = lhs.kind().compare( rhs.kind() )) == 0 )
+ res = lhs.name().compare( rhs.name() );
+ }
+ return res;
+ }
+
+ /** \relates Solvable Compare according to \a kind, \a name and \a edition. */
+ inline int compareByNVR( const Solvable & lhs, const Solvable & rhs )
+ {
+ int res = compareByN( lhs, rhs );
+ if ( res == 0 )
+ res = lhs.edition().compare( rhs.edition() );
+ return res;
+ }
+
+ /** \relates Solvable Compare according to \a kind, \a name, \a edition and \a arch. */
+ inline int compareByNVRA( const Solvable & lhs, const Solvable & rhs )
+ {
+ int res = compareByNVR( lhs, rhs );
+ if ( res == 0 )
+ res = lhs.arch().compare( rhs.arch() );
+ return res;
+ }
+
///////////////////////////////////////////////////////////////////
namespace detail
{ /////////////////////////////////////////////////////////////////