Preparing for 4.11.1 final
[platform/upstream/rpm.git] / lib / rpmlegacy.h
1 #ifndef _RPMLEGACY_H
2 #define _RPMLEGACY_H
3
4 #include <rpm/rpmtypes.h>
5 #include <rpm/rpmutil.h>
6
7 /* ==================================================================== */
8 /*         LEGACY INTERFACES AND TYPES, DO NOT USE IN NEW CODE!         */
9 /* ==================================================================== */
10
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14
15 #ifdef _RPM_4_4_COMPAT
16
17 /* mappings for legacy types */
18 typedef int32_t         int_32 RPM_GNUC_DEPRECATED;
19 typedef int16_t         int_16 RPM_GNUC_DEPRECATED;
20 typedef int8_t          int_8 RPM_GNUC_DEPRECATED;
21 typedef uint32_t        uint_32 RPM_GNUC_DEPRECATED;
22 typedef uint16_t        uint_16 RPM_GNUC_DEPRECATED;
23 typedef uint8_t         uint_8 RPM_GNUC_DEPRECATED;
24
25 typedef rpm_tag_t *     hTAG_t RPM_GNUC_DEPRECATED;
26 typedef rpm_tagtype_t * hTYP_t RPM_GNUC_DEPRECATED;
27 typedef const void *    hPTR_t RPM_GNUC_DEPRECATED;
28 typedef rpm_count_t *   hCNT_t RPM_GNUC_DEPRECATED;
29
30 typedef rpmSpec         Spec RPM_GNUC_DEPRECATED;
31
32 /* legacy header interfaces */
33
34 /** \ingroup header_legacy
35  * Retrieve tag value.
36  * Will never return RPM_I18NSTRING_TYPE! RPM_STRING_TYPE elements with
37  * RPM_I18NSTRING_TYPE equivalent entries are translated (if HEADER_I18NTABLE
38  * entry is present).
39  * @deprecated          Use headerGet() instead
40  *
41  * @param h             header
42  * @param tag           tag
43  * @retval *type        tag value data type (or NULL)
44  * @retval *p           pointer to tag value(s) (or NULL)
45  * @retval *c           number of values (or NULL)
46  * @return              1 on success, 0 on failure
47  */
48 int headerGetEntry(Header h, rpm_tag_t tag,
49                         rpm_tagtype_t * type,
50                         rpm_data_t * p,
51                         rpm_count_t * c) RPM_GNUC_DEPRECATED;
52
53 /** \ingroup header_legacy
54  * Retrieve tag value using header internal array.
55  * Get an entry using as little extra RAM as possible to return the tag value.
56  * This is only an issue for RPM_STRING_ARRAY_TYPE.
57  * @deprecated          Use headerGet() instead
58  *
59  * @param h             header
60  * @param tag           tag
61  * @retval *type        tag value data type (or NULL)
62  * @retval *p           pointer to tag value(s) (or NULL)
63  * @retval *c           number of values (or NULL)
64  * @return              1 on success, 0 on failure
65  */
66 int headerGetEntryMinMemory(Header h, rpm_tag_t tag,
67                         rpm_tagtype_t * type,
68                         rpm_data_t * p, 
69                         rpm_count_t * c) RPM_GNUC_DEPRECATED;
70
71 /** \ingroup header_legacy
72  * Add tag to header.
73  * Duplicate tags are okay, but only defined for iteration (with the
74  * exceptions noted below). While you are allowed to add i18n string
75  * arrays through this function, you probably don't mean to. See
76  * headerAddI18NString() instead.
77  *
78  * @param h             header
79  * @param tag           tag
80  * @param type          tag value data type
81  * @param p             pointer to tag value(s)
82  * @param c             number of values
83  * @return              1 on success, 0 on failure
84  */
85 int headerAddEntry(Header h, rpm_tag_t tag, rpm_tagtype_t type, 
86                    rpm_constdata_t p, rpm_count_t c) RPM_GNUC_DEPRECATED;
87
88 /** \ingroup header_legacy
89  * Append element to tag array in header.
90  * Appends item p to entry w/ tag and type as passed. Won't work on
91  * RPM_STRING_TYPE. Any pointers into header memory returned from
92  * headerGetEntryMinMemory() for this entry are invalid after this
93  * call has been made!
94  *
95  * @param h             header
96  * @param tag           tag
97  * @param type          tag value data type
98  * @param p             pointer to tag value(s)
99  * @param c             number of values
100  * @return              1 on success, 0 on failure
101  */
102 int headerAppendEntry(Header h, rpm_tag_t tag, rpm_tagtype_t type,
103                 rpm_constdata_t p, rpm_count_t c) RPM_GNUC_DEPRECATED;
104
105 /** \ingroup header_legacy
106  * Add or append element to tag array in header.
107  * @param h             header
108  * @param tag           tag
109  * @param type          tag value data type
110  * @param p             pointer to tag value(s)
111  * @param c             number of values
112  * @return              1 on success, 0 on failure
113  */
114 int headerAddOrAppendEntry(Header h, rpm_tag_t tag, rpm_tagtype_t type,
115                 rpm_constdata_t p, rpm_count_t c) RPM_GNUC_DEPRECATED;
116
117 /** \ingroup header_legacy
118  * Modify tag in header.
119  * If there are multiple entries with this tag, the first one gets replaced.
120  * @deprecated          Use headerMod() instead
121  *
122  * @param h             header
123  * @param tag           tag
124  * @param type          tag value data type
125  * @param p             pointer to tag value(s)
126  * @param c             number of values
127  * @return              1 on success, 0 on failure
128  */
129 int headerModifyEntry(Header h, rpm_tag_t tag, rpm_tagtype_t type,
130                         rpm_constdata_t p, rpm_count_t c) RPM_GNUC_DEPRECATED;
131
132 /** \ingroup header_legacy
133  * Delete tag in header.
134  * Removes all entries of type tag from the header, returns 1 if none were
135  * found.
136  * @deprecated          Use headerDel() instead
137  *
138  * @param h             header
139  * @param tag           tag
140  * @return              0 on success, 1 on failure (INCONSISTENT)
141  */
142 int headerRemoveEntry(Header h, rpm_tag_t tag) RPM_GNUC_DEPRECATED;
143
144 /** \ingroup header_legacy
145  * Return formatted output string from header tags.
146  * The returned string must be free()d.
147  * @deprecated          Use headerFormat() instead
148  *
149  * @param _h            header
150  * @param _fmt          format to use
151  * @param _tbltags      array of tag name/value pairs (unused)
152  * @param _exts         chained table of formatting extensions. (unused)
153  * @retval _emsg        error message (if any)
154  * @return              formatted output string (malloc'ed)
155  */
156 #define headerSprintf(_h, _fmt, _tbltags, _exts, _emsg) \
157         headerFormat((_h), (_fmt), (_emsg))
158
159 /** \ingroup header_legacy
160  * Return next tag from header.
161  * @deprecated Use headerNext() instead.
162  *
163  * @param hi            header tag iterator
164  * @retval *tag         tag
165  * @retval *type        tag value data type
166  * @retval *p           pointer to tag value(s)
167  * @retval *c           number of values
168  * @return              1 on success, 0 on failure
169  */
170 int headerNextIterator(HeaderIterator hi,
171                 rpm_tag_t * tag,
172                 rpm_tagtype_t * type,
173                 rpm_data_t * p,
174                 rpm_count_t * c) RPM_GNUC_DEPRECATED;
175
176 /** \ingroup header_legacy
177  * Free data allocated when retrieved from header.
178  * @deprecated          Use rpmtdFreeData() instead
179  *
180  * @param h             header
181  * @param data          pointer to tag value(s)
182  * @param type          type of data (or -1 to force free)
183  * @return              NULL always
184  */
185 void * headerFreeTag(Header h, rpm_data_t data, rpm_tagtype_t type) RPM_GNUC_DEPRECATED;
186
187 /** \ingroup header_legacy
188  * Free data allocated when retrieved from header.
189  * @deprecated Use rpmtdFreeData() instead.
190  *
191  * @param data          address of data (or NULL)
192  * @param type          type of data (or RPM_FORCEFREE_TYPE to force free)
193  * @return              NULL always
194  */
195 void * headerFreeData(rpm_data_t data, rpm_tagtype_t type) RPM_GNUC_DEPRECATED;
196
197 /** \ingroup header_legacy
198  * Prototypes for headerGetEntry(), headerFreeData() etc vectors.
199  * @{
200  */
201 typedef void * (*HFD_t) (rpm_data_t data, rpm_tagtype_t type) RPM_GNUC_DEPRECATED;
202 typedef int (*HGE_t) (Header h, rpm_tag_t tag, rpm_tagtype_t * type,
203                         rpm_data_t * p, rpm_count_t * c) RPM_GNUC_DEPRECATED;
204 typedef int (*HAE_t) (Header h, rpm_tag_t tag, rpm_tagtype_t type,
205                         rpm_constdata_t p, rpm_count_t c) RPM_GNUC_DEPRECATED;
206 typedef int (*HME_t) (Header h, rpm_tag_t tag, rpm_tagtype_t type,
207                         rpm_constdata_t p, rpm_count_t c) RPM_GNUC_DEPRECATED;
208 typedef int (*HRE_t) (Header h, rpm_tag_t tag) RPM_GNUC_DEPRECATED;
209 /** @} */
210
211 /* other misc renamed / namespaced functions */
212 /* TODO: arrange deprecation warnings on these too... */
213 #define isCompressed    rpmFileIsCompressed
214 #define makeTempFile    rpmMkTempFile
215 #define whatis          rpmfiWhatis
216 #define tagName         rpmTagGetName
217 #define tagType         rpmTagGetType
218 #define tagValue        rpmTagGetValue
219
220 #define xislower        rislower
221 #define xisupper        risupper
222 #define xisalpha        risalpha
223 #define xisdigit        risdigit
224 #define xisalnum        risalnum
225 #define xisblank        risblank
226 #define xisspace        risspace
227 #define xtolower        rtolower
228 #define xtoupper        rtoupper
229 #define xstrcasecmp     rstrcasecmp
230 #define xstrncasecmp    rstrncasecmp
231
232 #define rpmMessage      rpmlog
233 #define rpmError        rpmlog
234
235 #endif /* _RPM_4_4_COMPAT */
236
237 #ifdef __cplusplus
238 }
239 #endif
240
241 #endif /* _RPMLEGACY_H */