00001
00002 #ifndef H_HDRINLINE
00003 #define H_HDRINLINE
00004
00009 #ifdef __cplusplus
00010 extern "C" {
00011 #endif
00012
00013
00017
00018 extern struct HV_s * hdrVec;
00019
00022 static inline HV_t h2hv(Header h)
00023
00024 {
00025
00026 return ((HV_t)h);
00027
00028 }
00029
00034 static inline
00035 Header headerNew(void)
00036
00037 {
00038 return hdrVec->hdrnew();
00039 }
00040
00046 static inline
00047 Header headerFree( Header h)
00048
00049 {
00050
00051 if (h == NULL) return NULL;
00052
00053 return (h2hv(h)->hdrfree) (h);
00054 }
00055
00061 static inline
00062 Header headerLink(Header h)
00063
00064 {
00065 return (h2hv(h)->hdrlink) (h);
00066 }
00067
00073 static inline
00074 Header headerUnlink( Header h)
00075
00076 {
00077
00078 if (h == NULL) return NULL;
00079
00080 return (h2hv(h)->hdrunlink) (h);
00081 }
00082
00083
00088 static inline
00089 void headerSort(Header h)
00090
00091 {
00092
00093 (h2hv(h)->hdrsort) (h);
00094
00095 return;
00096 }
00097
00102 static inline
00103 void headerUnsort(Header h)
00104
00105 {
00106
00107 (h2hv(h)->hdrunsort) (h);
00108
00109 return;
00110 }
00111
00112
00119 static inline
00120 unsigned int headerSizeof( Header h, enum hMagic magicp)
00121
00122 {
00123
00124 if (h == NULL) return 0;
00125
00126 return (h2hv(h)->hdrsizeof) (h, magicp);
00127 }
00128
00134 static inline
00135 void * headerUnload(Header h)
00136
00137 {
00138 return (h2hv(h)->hdrunload) (h);
00139 }
00140
00148 static inline
00149 Header headerReload( Header h, int tag)
00150
00151 {
00152
00153 return (h2hv(h)->hdrreload) (h, tag);
00154
00155 }
00156
00162 static inline
00163 Header headerCopy(Header h)
00164
00165 {
00166 return (h2hv(h)->hdrcopy) (h);
00167 }
00168
00174 static inline
00175 Header headerLoad( void * uh)
00176
00177 {
00178 return hdrVec->hdrload(uh);
00179 }
00180
00186 static inline
00187 Header headerCopyLoad(const void * uh)
00188
00189 {
00190 return hdrVec->hdrcopyload(uh);
00191 }
00192
00199 static inline
00200 Header headerRead(FD_t fd, enum hMagic magicp)
00201
00202 {
00203 return hdrVec->hdrread(fd, magicp);
00204 }
00205
00213 static inline
00214 int headerWrite(FD_t fd, Header h, enum hMagic magicp)
00215
00216 {
00217
00218 if (h == NULL) return 0;
00219
00220 return (h2hv(h)->hdrwrite) (fd, h, magicp);
00221 }
00222
00229 static inline
00230 int headerIsEntry( Header h, int_32 tag)
00231
00232 {
00233
00234 if (h == NULL) return 0;
00235
00236 return (h2hv(h)->hdrisentry) (h, tag);
00237 }
00238
00246 static inline
00247 void * headerFreeTag(Header h,
00248 const void * data, rpmTagType type)
00249
00250 {
00251 return (h2hv(h)->hdrfreetag) (h, data, type);
00252 }
00253
00267 static inline
00268 int headerGetEntry(Header h, int_32 tag,
00269 hTYP_t type,
00270 void ** p,
00271 hCNT_t c)
00272
00273 {
00274 return (h2hv(h)->hdrget) (h, tag, type, p, c);
00275 }
00276
00289 static inline
00290 int headerGetEntryMinMemory(Header h, int_32 tag,
00291 hTYP_t type,
00292 hPTR_t * p,
00293 hCNT_t c)
00294
00295 {
00296 return (h2hv(h)->hdrgetmin) (h, tag, type, p, c);
00297 }
00298
00313
00314 static inline
00315 int headerAddEntry(Header h, int_32 tag, int_32 type, const void * p, int_32 c)
00316
00317 {
00318 return (h2hv(h)->hdradd) (h, tag, type, p, c);
00319 }
00320
00335 static inline
00336 int headerAppendEntry(Header h, int_32 tag, int_32 type,
00337 const void * p, int_32 c)
00338
00339 {
00340 return (h2hv(h)->hdrappend) (h, tag, type, p, c);
00341 }
00342
00353 static inline
00354 int headerAddOrAppendEntry(Header h, int_32 tag, int_32 type,
00355 const void * p, int_32 c)
00356
00357 {
00358 return (h2hv(h)->hdraddorappend) (h, tag, type, p, c);
00359 }
00360
00381 static inline
00382 int headerAddI18NString(Header h, int_32 tag, const char * string,
00383 const char * lang)
00384
00385 {
00386 return (h2hv(h)->hdraddi18n) (h, tag, string, lang);
00387 }
00388
00399 static inline
00400 int headerModifyEntry(Header h, int_32 tag, int_32 type,
00401 const void * p, int_32 c)
00402
00403 {
00404 return (h2hv(h)->hdrmodify) (h, tag, type, p, c);
00405 }
00406
00416 static inline
00417 int headerRemoveEntry(Header h, int_32 tag)
00418
00419 {
00420 return (h2hv(h)->hdrremove) (h, tag);
00421 }
00422
00434 static inline
00435 char * headerSprintf(Header h, const char * fmt,
00436 const struct headerTagTableEntry_s * tbltags,
00437 const struct headerSprintfExtension_s * extensions,
00438 errmsg_t * errmsg)
00439
00440 {
00441 return (h2hv(h)->hdrsprintf) (h, fmt, tbltags, extensions, errmsg);
00442 }
00443
00450 static inline
00451 void headerCopyTags(Header headerFrom, Header headerTo, hTAG_t tagstocopy)
00452
00453 {
00454
00455 hdrVec->hdrcopytags(headerFrom, headerTo, tagstocopy);
00456
00457 return;
00458 }
00459
00465 static inline
00466 HeaderIterator headerFreeIterator( HeaderIterator hi)
00467
00468 {
00469 return hdrVec->hdrfreeiter(hi);
00470 }
00471
00477 static inline
00478 HeaderIterator headerInitIterator(Header h)
00479
00480 {
00481 return hdrVec->hdrinititer(h);
00482 }
00483
00493 static inline
00494 int headerNextIterator(HeaderIterator hi,
00495 hTAG_t tag,
00496 hTYP_t type,
00497 hPTR_t * p,
00498 hCNT_t c)
00499
00500 {
00501 return hdrVec->hdrnextiter(hi, tag, type, p, c);
00502 }
00503
00504
00505
00506 #ifdef __cplusplus
00507 }
00508 #endif
00509
00510 #endif
00511