libzypp 17.37.10

zypp::callback::UserData Class Reference

Typesafe passing of user data via callbacks. More...

`#include <zypp-core/UserData.h>`

Inheritance diagram for zypp::callback::UserData:

## Public Types
typedef boost::any | AnyType
typedef boost::bad_any_cast | bad_AnyType_cast
typedef std::map< std::string, AnyType > | DataType
typedef DataType::size_type | size_type
typedef DataType::key_type | key_type
typedef DataType::value_type | value_type
typedef DataType::const_iterator | const_iterator
typedef zypp::ContentType | ContentType

## Public Member Functions
| UserData ()
| Default ctor.
| UserData (ContentType type_r)
| Ctor taking ContentType.
| UserData (std::string type_r)
| Ctor taking ContentType.
| UserData (std::string type_r, std::string subtype_r)
| Ctor taking ContentType.
const ContentType & | type () const
| Get type.
void | type (ContentType type_r)
| Set type.
| operator bool () const
| Validate object in a boolean context: has data.
bool | empty () const
| Whether data is empty.
size_type | size () const
| Size of data.
const DataType & | data () const
| The data.
bool | haskey (const std::string &key_r) const
| Whether key_r is in data.
bool | hasvalue (const std::string &key_r) const
| Whether key_r is in data and value is not empty.
bool | set (const std::string &key_r, AnyType val_r)
| Set the value for key (nonconst version always returns true).
bool | set (const std::string &key_r, AnyType val_r) const
bool | reset (const std::string &key_r)
| Set an empty value for key_r (if possible).
bool | reset (const std::string &key_r) const
void | erase (const std::string &key_r)
| Remove key from data.
const AnyType & | getvalue (const std::string &key_r) const
| get helper returning the keys AnyType value or an empty value if key does not exist.
template<class Tp>
const Tp & | get (const std::string &key_r) const
| Pass back a const Tp & reference to key_r value.
template<class Tp>
Tp | get (const std::string &key_r, const Tp &default_r) const
| Pass back a Tp copy of key_r value.
template<class Tp>
bool | get (const std::string &key_r, Tp &ret_r) const
| If the value for key_r is of the same type as ret_r, pass it back in ret_r and return `true`;.

## Private Member Functions
DataType & | dataRef () const

## Private Attributes
ContentType | _type
shared_ptr< DataType > | _dataP

## Related Symbols
(Note that these are not member symbols.)
std::ostream & | operator<< (std::ostream &str, const UserData &obj)
| Stream output.

## Detailed Description

Typesafe passing of user data via callbacks.

Basically a std::map<std::string,AnyType> plus associated ContentType.

Constness protects non-empty values from being modified. It is possible to overwrite empty values or to add new ones.

Definition at line 39 of file UserData.h.

## Member Typedef Documentation

## ◆ AnyType

typedef boost::any zypp::callback::UserData::AnyType

Definition at line 42 of file UserData.h.

## ◆ bad_AnyType_cast

typedef boost::bad_any_cast zypp::callback::UserData::bad_AnyType_cast

Definition at line 43 of file UserData.h.

## ◆ DataType

typedef std::map<std::string,AnyType> zypp::callback::UserData::DataType

Definition at line 45 of file UserData.h.

## ◆ size_type

typedef DataType::size_type zypp::callback::UserData::size_type

Definition at line 46 of file UserData.h.

## ◆ key_type

typedef DataType::key_type zypp::callback::UserData::key_type

Definition at line 47 of file UserData.h.

## ◆ value_type

typedef DataType::value_type zypp::callback::UserData::value_type

Definition at line 48 of file UserData.h.

## ◆ const_iterator

typedef DataType::const_iterator zypp::callback::UserData::const_iterator

Definition at line 49 of file UserData.h.

## ◆ ContentType

typedef zypp::ContentType zypp::callback::UserData::ContentType

Definition at line 51 of file UserData.h.

## Constructor & Destructor Documentation

## ◆ UserData() [1/4]

zypp::callback::UserData::UserData | ( |  | ) |
| inline

Default ctor.

Definition at line 55 of file UserData.h.

## ◆ UserData() [2/4]

zypp::callback::UserData::UserData | ( | ContentType | type_r | ) |
| inline explicit

Ctor taking ContentType.

Definition at line 59 of file UserData.h.

## ◆ UserData() [3/4]

zypp::callback::UserData::UserData | ( | std::string | type_r | ) |
| inline explicit

Ctor taking ContentType.

Definition at line 63 of file UserData.h.

## ◆ UserData() [4/4]

zypp::callback::UserData::UserData | ( | std::string | type_r,
|  | std::string | subtype_r )
| inline

Ctor taking ContentType.

Definition at line 67 of file UserData.h.

## Member Function Documentation

## ◆ type() [1/2]

const ContentType & zypp::callback::UserData::type | ( |  | ) | const
| inline

Get type.

Definition at line 73 of file UserData.h.

## ◆ type() [2/2]

void zypp::callback::UserData::type | ( | ContentType | type_r | ) |
| inline

Set type.

Definition at line 77 of file UserData.h.

## ◆ operator bool()

zypp::callback::UserData::operator bool | ( |  | ) | const
| inline explicit

Validate object in a boolean context: has data.

Definition at line 82 of file UserData.h.

## ◆ empty()

bool zypp::callback::UserData::empty | ( |  | ) | const
| inline

Whether data is empty.

Definition at line 86 of file UserData.h.

## ◆ size()

size_type zypp::callback::UserData::size | ( |  | ) | const
| inline

Size of data.

Definition at line 90 of file UserData.h.

## ◆ data()

const DataType & zypp::callback::UserData::data | ( |  | ) | const
| inline

The data.

Definition at line 94 of file UserData.h.

## ◆ haskey()

bool zypp::callback::UserData::haskey | ( | const std::string & | key_r | ) | const
| inline

Whether key_r is in data.

Definition at line 98 of file UserData.h.

## ◆ hasvalue()

bool zypp::callback::UserData::hasvalue | ( | const std::string & | key_r | ) | const
| inline

Whether key_r is in data and value is not empty.

Definition at line 102 of file UserData.h.

## ◆ set() [1/2]

bool zypp::callback::UserData::set | ( | const std::string & | key_r,
|  | AnyType | val_r )
| inline

Set the value for key (nonconst version always returns true).

Const version is allowed to set empty values or to add new ones only.

Definition at line 119 of file UserData.h.

## ◆ set() [2/2]

bool zypp::callback::UserData::set | ( | const std::string & | key_r,
|  | AnyType | val_r ) const
| inline

Definition at line 122 of file UserData.h.

## ◆ reset() [1/2]

bool zypp::callback::UserData::reset | ( | const std::string & | key_r | ) |
| inline

Set an empty value for key_r (if possible).

Definition at line 135 of file UserData.h.

## ◆ reset() [2/2]

bool zypp::callback::UserData::reset | ( | const std::string & | key_r | ) | const
| inline

Definition at line 138 of file UserData.h.

## ◆ erase()

void zypp::callback::UserData::erase | ( | const std::string & | key_r | ) |
| inline

Remove key from data.

Definition at line 142 of file UserData.h.

## ◆ getvalue()

const AnyType & zypp::callback::UserData::getvalue | ( | const std::string & | key_r | ) | const
| inline

get helper returning the keys AnyType value or an empty value if key does not exist.

Definition at line 146 of file UserData.h.

## ◆ get() [1/3]

template<class Tp>

const Tp & zypp::callback::UserData::get | ( | const std::string & | key_r | ) | const
| inline

Pass back a const Tp & reference to key_r value.

Exceptions

  bad_AnyType_cast | if key is not set or value is not of appropriate type UserData data; std::string value( "defaultvalue" ); try { value = data.get<std::string>( "mykey" ); } catch ( const UserData::bad_AnyType_cast & ) { // no "mykey" or not a std::sting } zypp::callback::UserData::UserData UserData() Default ctor. Definition UserData.h:55 zypp::callback::UserData::data const DataType & data() const The data. Definition UserData.h:94 zypp::callback::UserData::bad_AnyType_cast boost::bad_any_cast bad_AnyType_cast Definition UserData.h:43

Definition at line 176 of file UserData.h.

## ◆ get() [2/3]

template<class Tp>

Tp zypp::callback::UserData::get | ( | const std::string & | key_r,
|  | const Tp & | default_r ) const
| inline

Pass back a Tp copy of key_r value.

Exceptions

  bad_AnyType_cast | if key is not set or value is not of appropriate type UserData data; std::string value = data.get<std::string>( "mykey", "defaultvalue" );

Definition at line 187 of file UserData.h.

## ◆ get() [3/3]

template<class Tp>

bool zypp::callback::UserData::get | ( | const std::string & | key_r,
|  | Tp & | ret_r ) const
| inline

If the value for key_r is of the same type as ret_r, pass it back in ret_r and return `true`;.

UserData data;
std::string value( "defaultvalue" );
if ( ! data.get<std::string>( "mykey", value )
{
// no "mykey" or not a std::sting
}

Definition at line 201 of file UserData.h.

## ◆ dataRef()

DataType & zypp::callback::UserData::dataRef | ( |  | ) | const
| inline private

Definition at line 221 of file UserData.h.

## Friends And Related Symbol Documentation

## ◆ operator<<()

std::ostream & operator<< | ( | std::ostream & | str,
|  | const UserData & | obj )
| related

Stream output.

Definition at line 230 of file UserData.h.

## Member Data Documentation

## ◆ _type

ContentType zypp::callback::UserData::_type
| private

Definition at line 225 of file UserData.h.

## ◆ _dataP

shared_ptr<DataType> zypp::callback::UserData::_dataP
| mutable private

Definition at line 226 of file UserData.h.

The documentation for this class was generated from the following file:

- zypp-core/UserData.h