1 /*---------------------------------------------------------------------\
3 | |__ / \ / / . \ . \ |
8 \---------------------------------------------------------------------*/
9 /** \file zypp/target/rpm/BinHeader.h
12 #ifndef ZYPP_TARGET_RPM_BINHEADER_H
13 #define ZYPP_TARGET_RPM_BINHEADER_H
24 #include "zypp/base/ReferenceCounted.h"
25 #include "zypp/base/NonCopyable.h"
26 #include "zypp/base/PtrTypes.h"
27 #include "zypp/target/rpm/librpm.h"
35 ///////////////////////////////////////////////////////////////////
37 // CLASS NAME : BinHeader
41 class BinHeader : public base::ReferenceCounted, private base::NonCopyable
46 typedef intrusive_ptr<BinHeader> Ptr;
48 typedef intrusive_ptr<const BinHeader> constPtr;
64 BinHeader( Header h_r = 0 );
67 * <B>Dangerous!<\B> This one takes the header out of rhs
68 * and leaves rhs empty.
70 BinHeader( BinHeader::Ptr & rhs );
81 bool has_tag( tag tag_r ) const;
83 unsigned int_list( tag tag_r, intList & lst_r ) const;
85 unsigned string_list( tag tag_r, stringList & lst_r ) const;
87 int int_val( tag tag_r ) const;
89 std::string string_val( tag tag_r ) const;
93 std::list<std::string> stringList_val( tag tag_r ) const;
97 virtual std::ostream & dumpOn( std::ostream & str ) const;
100 ///////////////////////////////////////////////////////////////////
102 ///////////////////////////////////////////////////////////////////
104 // CLASS NAME : BinHeader::intList
108 class BinHeader::intList
110 intList ( const intList & );
111 intList & operator=( const intList & );
117 friend class BinHeader;
118 unsigned set( void * val_r, tag cnt_r, tag type_r );
125 unsigned size() const
129 int operator[]( const unsigned idx_r ) const;
132 ///////////////////////////////////////////////////////////////////
134 ///////////////////////////////////////////////////////////////////
136 // CLASS NAME : BinHeader::stringList
140 class BinHeader::stringList
142 stringList ( const stringList & );
143 stringList & operator=( const stringList & );
149 friend class BinHeader;
150 unsigned set( char ** val_r, tag cnt_r );
161 unsigned size() const
165 std::string operator[]( const unsigned idx_r ) const;
168 ///////////////////////////////////////////////////////////////////
171 } // namespace target
174 #endif // ZYPP_TARGET_RPM_BINHEADER_H