libzypp  10.5.0
ResKind.cc
Go to the documentation of this file.
00001 /*---------------------------------------------------------------------\
00002 |                          ____ _   __ __ ___                          |
00003 |                         |__  / \ / / . \ . \                         |
00004 |                           / / \ V /|  _/  _/                         |
00005 |                          / /__ | | | | | |                           |
00006 |                         /_____||_| |_| |_|                           |
00007 |                                                                      |
00008 \---------------------------------------------------------------------*/
00012 #include <iostream>
00013 
00014 #include "zypp/base/String.h"
00015 
00016 #include "zypp/ResKind.h"
00017 #include "zypp/ResTraits.h"
00018 
00019 using std::endl;
00020 
00022 namespace zypp
00023 { 
00024 
00025   const ResKind ResKind::nokind;
00026   const ResKind ResKind::package   ( "package" );
00027   const ResKind ResKind::patch     ( "patch" );
00028   const ResKind ResKind::pattern   ( "pattern" );
00029   const ResKind ResKind::product   ( "product" );
00030   const ResKind ResKind::srcpackage( "srcpackage" );
00031 
00032   template<>
00033     const ResKind ResTraits<Package>   ::kind( ResKind::package );
00034   template<>
00035     const ResKind ResTraits<Patch>     ::kind( ResKind::patch );
00036   template<>
00037     const ResKind ResTraits<Pattern>   ::kind( ResKind::pattern );
00038   template<>
00039     const ResKind ResTraits<Product>   ::kind( ResKind::product );
00040   template<>
00041     const ResKind ResTraits<SrcPackage>::kind( ResKind::srcpackage );
00042 
00043   std::string ResKind::satIdent( const ResKind & refers_r, const std::string & name_r )
00044   {
00045     if ( ! refers_r || refers_r == package || refers_r == srcpackage )
00046       return name_r;
00047     return str::form( "%s:%s", refers_r.c_str(), name_r.c_str() );
00048   }
00049 
00051 } // namespace zypp