17#define RPM_NULL_TYPE rpmTagType(0) 
   18typedef rpmuint32_t rpm_count_t;
 
   34#define Y2LOG "BinHeader" 
   75  { ::headerGet( h_r, tag_r, 
_rpmtd, HEADERGET_DEFAULT ); }
 
 
   83    : _type( RPM_NULL_TYPE )
 
   86  { ::headerGetEntry( h_r, tag_r, hTYP_t(&_type), &_val, &_cnt ); }
 
   88  { 
if ( _val && _type == RPM_STRING_ARRAY_TYPE ) free( _val ); }
 
  106#if RPM_CHAR_TYPE != RPM_INT8_TYPE 
  108        std::vector<long>( (
char*)val_r, ((
char*)val_r)+cnt_r ).swap( 
_data );
 
  112        std::vector<long>( (int8_t*)val_r, ((int8_t*)val_r)+cnt_r ).swap( 
_data );
 
  115        std::vector<long>( (int16_t*)val_r, ((int16_t*)val_r)+cnt_r ).swap( 
_data );
 
  118        std::vector<long>( (int32_t*)val_r, ((int32_t*)val_r)+cnt_r ).swap( 
_data );
 
  122        std::vector<long>( (int64_t*)val_r, ((int64_t*)val_r)+cnt_r ).swap( 
_data );
 
  126        std::vector<long>( cnt_r, 0L ).swap( 
_data );
 
 
  143    std::vector<std::string>( val_r, val_r+cnt_r ).swap( 
_data );
 
 
  178  INT << 
"INJECT from " << rhs;
 
  179  if ( ! (rhs && rhs->_h) )
 
  188  INT << 
": " << *
this << 
"   (" << rhs << 
")" << endl;
 
 
  218      INT << 
"OOPS: NULL HEADER created!" << endl;
 
 
  235  return( !
empty() && ::headerIsEntry( 
_h, tag_r ) );
 
 
  252    if ( headerget.
val() )
 
  254      switch ( headerget.
type() )
 
  257        return lst_r.
set( 0, 0, headerget.
type() );
 
  258#if RPM_CHAR_TYPE != RPM_INT8_TYPE 
  267        return lst_r.
set( headerget.
val(), headerget.
cnt(), headerget.
type() );
 
  270        INT << 
"RPM_TAG MISMATCH: RPM_INTxx_TYPE " << tag_r << 
" got type " << headerget.
type() << endl;
 
  274  return lst_r.
set( 0, 0, RPM_NULL_TYPE );
 
 
  291    if ( headerget.
val() )
 
  293      switch ( headerget.
type() )
 
  296        return lst_r.
set( 0, 0 );
 
  297      case RPM_STRING_ARRAY_TYPE:
 
  298        return lst_r.
set( (
char**)headerget.
val(), headerget.
cnt() );
 
  301        INT << 
"RPM_TAG MISMATCH: RPM_STRING_ARRAY_TYPE " << tag_r << 
" got type " << headerget.
type() << endl;
 
  305  return lst_r.
set( 0, 0 );
 
 
  322    if ( headerget.
val() )
 
  324      switch ( headerget.
type() )
 
  328#if RPM_CHAR_TYPE != RPM_INT8_TYPE 
  330        return *((
char*)headerget.
val());
 
  333        return *((int8_t*)headerget.
val());
 
  335        return *((int16_t*)headerget.
val());
 
  337        return *((int32_t*)headerget.
val());
 
  340        return *((int64_t*)headerget.
val());
 
  344        INT << 
"RPM_TAG MISMATCH: RPM_INTxx_TYPE " << tag_r << 
" got type " << headerget.
type() << endl;
 
 
  357    if ( headerget.
val() )
 
  359      switch ( headerget.
type() )
 
  364          return ByteArray( 
reinterpret_cast<char *
>( headerget.
val() ), headerget.
cnt() );
 
  366          INT << 
"RPM_TAG MISSMATCH: RPM_BIN_TYPE " << tag_r << 
" got type " << headerget.
type() << endl;
 
 
  387    if ( headerget.
val() )
 
  389      switch ( headerget.
type() )
 
  393      case RPM_STRING_TYPE:
 
  394        return (
char*)headerget.
val();
 
  397        INT << 
"RPM_TAG MISMATCH: RPM_STRING_TYPE " << tag_r << 
" got type " << headerget.
type() << endl;
 
 
  408    return std::string();
 
  410  return std::string(
form);
 
 
  428  std::list<std::string> ret;
 
  434    for ( 
unsigned i = 0; i < count; ++i )
 
  436      ret.push_back( lines[i] );
 
 
  452  ReferenceCounted::dumpOn( 
str );
 
  453  return str << 
'{' << (
void*)
_h << 
'}';
 
 
Reference counted access to a Tp object calling a custom Dispose function when the last AutoDispose h...
String related utilities and Regular expression matching.
boost::noncopyable NonCopyable
Ensure derived classes cannot be copied.
Easy-to use interface to the ZYPP dependency resolver.