libzypp
11.13.5
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
IdString.cc
Go to the documentation of this file.
1
/*---------------------------------------------------------------------\
2
| ____ _ __ __ ___ |
3
| |__ / \ / / . \ . \ |
4
| / / \ V /| _/ _/ |
5
| / /__ | | | | | | |
6
| /_____||_| |_| |_| |
7
| |
8
\---------------------------------------------------------------------*/
12
#include <iostream>
13
#include <boost/mpl/int.hpp>
14
15
#include "
zypp/IdString.h
"
16
17
#include "
zypp/sat/detail/PoolImpl.h
"
18
#include "
zypp/sat/Pool.h
"
19
20
using
std::endl;
21
23
namespace
zypp
24
{
25
26
const
IdString
IdString::Null
(
sat::detail::noId
);
27
const
IdString
IdString::Empty
(
sat::detail::emptyId
);
28
30
31
IdString::IdString
(
const
char
* str_r )
32
: _id( ::pool_str2id( myPool().getPool(), str_r,
/*create*/
true ) )
33
{}
34
35
IdString::IdString
(
const
std::string & str_r )
36
: _id( ::pool_str2id( myPool().getPool(), str_r.c_str(),
/*create*/
true ) )
37
{}
38
39
unsigned
IdString::size
()
const
40
{ return ::strlen(
c_str
() ); }
41
42
const
char
*
IdString::c_str
()
const
43
{
return
_id
? ::pool_id2str(
myPool
().getPool(),
_id
) :
""
; }
44
45
int
IdString::compare
(
const
IdString
& rhs )
const
46
{
47
if
(
_id
== rhs.
_id
)
48
return
0;
49
// Explicitly handle IdString::Null < ""
50
if
( !
_id
)
51
return
-1;
52
if
( ! rhs.
_id
)
53
return
1;
54
return ::strcmp(
c_str
(), rhs.
c_str
() );
55
}
56
57
int
IdString::compare
(
const
char
* rhs )
const
58
{
59
// Explicitly handle IdString::Null == (const char *)0
60
if
( !
_id
)
61
return
rhs ? -1 : 0;
62
if
( ! rhs )
63
return
_id
? 1 : 0;
64
return ::strcmp(
c_str
(), rhs );
65
}
66
67
/******************************************************************
68
**
69
** FUNCTION NAME : operator<<
70
** FUNCTION TYPE : std::ostream &
71
*/
72
std::ostream &
operator<<
( std::ostream & str,
const
IdString
& obj )
73
{
74
return
str << obj.
c_str
();
75
}
76
77
std::ostream &
dumpOn
( std::ostream & str,
const
IdString
& obj )
78
{
79
return
str <<
'('
<< obj.
id
() <<
')'
<< obj.
c_str
();
80
}
81
83
}
// namespace zypp
zypp
IdString.cc
Generated by
1.8.1