libzypp: zypp/Capabilities.cc Source File

libzypp 17.38.6

Capabilities.cc
Go to the documentation of this file.
1/*---------------------------------------------------------------------\
2| ____ _ __ __ ___ |
3| |__ / \ / / . \ . \ |
4| / / \ V /| _/ _/ |
5| / /__ | | | | | | |
6| /_____||_| |_| |_| |
7| |
8\---------------------------------------------------------------------*/
12#include <iostream>
13#include <zypp-core/base/LogTools.h>
14
15#include <zypp/Capabilities.h>
16
17using std::endl;
18
20namespace zypp
21{
22
23 Capabilities:: Capabilities( const sat::detail::IdType * base_r, sat::detail::IdType skip_r )
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
45 Capabilities::size_type Capabilities::size() const
46 {
47 if ( ! _begin )
48 return 0;
49
50 // jump over libsolvs internal ids.
51 Capabilities::size_type ret = 0;
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
Capabilities.h
LogTools.h
zypp::Capabilities
Container of Capability (currently read only).
Definition Capabilities.h:35
zypp::Capabilities::begin
const_iterator begin() const
Iterator pointing to the first Capability.
Definition Capabilities.h:171
zypp::Capabilities::end
const_iterator end() const
Iterator pointing behind the last Capability.
Definition Capabilities.h:174
zypp::Capabilities::size_type
unsigned size_type
Definition Capabilities.h:38
zypp::Capabilities::size
size_type size() const
Number of capabilities inside.
Definition Capabilities.cc:45
zypp::Capabilities::_begin
const sat::detail::IdType * _begin
Definition Capabilities.h:87
zypp::Capabilities::Capabilities
Capabilities()
Default ctor.
Definition Capabilities.h:44
str
String related utilities and Regular expression matching.
zypp::sat::detail::IdType
int IdType
Generic Id type.
Definition PoolDefines.h:42
zypp::sat::detail::isDepMarkerId
bool isDepMarkerId(IdType id_r)
Test for internal ids satlib includes in dependencies.
Definition PoolDefines.h:57
zypp
Easy-to use interface to the ZYPP dependency resolver.
Definition CodePitfalls.doc:2
zypp::dumpRange
std::ostream & dumpRange(std::ostream &str, TIterator begin, TIterator end, const std::string &intro="{", const std::string &pfx="\n ", const std::string &sep="\n ", const std::string &sfx="\n", const std::string &extro="}")
Print range defined by iterators (multiline style).
Definition LogTools.h:409
zypp::operator<<
std::ostream & operator<<(std::ostream &str, const Capabilities &obj)
relates: Capabilities Stream output
Definition Capabilities.cc:65