libzypp  11.13.5
Capabilities.cc
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
12 #include <iostream>
13 #include "zypp/base/LogTools.h"
14 
15 #include "zypp/Capabilities.h"
16 
17 using std::endl;
18 
20 namespace zypp
21 {
22 
24  : _begin( base_r )
25  {
26  if ( ! _begin )
27  return;
28 
29  if ( skip_r )
30  {
31  for ( const sat::detail::IdType * end = _begin; *end; ++end )
32  {
33  if ( *end == skip_r )
34  {
35  _begin = end+1;
36  return;
37  }
38  }
39  }
40  // skipp all ==> empty
41  _begin = 0;
42  }
43 
44 
46  {
47  if ( ! _begin )
48  return 0;
49 
50  // jump over libsolvs internal ids.
52  for ( const sat::detail::IdType * end = _begin; *end; ++end )
53  {
54  if ( ! sat::detail::isDepMarkerId( *end ) )
55  ++ret;
56  }
57  return ret;
58  }
59 
60  /******************************************************************
61  **
62  ** FUNCTION NAME : operator<<
63  ** FUNCTION TYPE : std::ostream &
64  */
65  std::ostream & operator<<( std::ostream & str, const Capabilities & obj )
66  {
67  return dumpRange( str << "(" << obj.size() << ")", obj.begin(), obj.end() );
68  }
69 
71 } // namespace zypp