Librepo library  1.7.18
C library for downloading linux repository metadata and packages
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Modules
handle.h
1 /* librepo - A library providing (libcURL like) API to downloading repository
2  * Copyright (C) 2012 Tomas Mlcoch
3  *
4  * Licensed under the GNU Lesser General Public License Version 2.1
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19  */
20 
21 #ifndef __LR_HANDLE_H__
22 #define __LR_HANDLE_H__
23 
24 #include <glib.h>
25 
26 #include "result.h"
27 
28 G_BEGIN_DECLS
29 
38 typedef struct _LrHandle LrHandle;
39 
41 #define LRO_FASTESTMIRRORMAXAGE_DEFAULT 2592000L // 30 days
42 
44 #define LRO_FASTESTMIRRORMAXAGE_MIN 0L
45 
47 #define LRO_PROXYPORT_DEFAULT 1080L
48 
50 #define LRO_PROXYTYPE_DEFAULT LR_PROXY_HTTP
51 
53 #define LRO_MAXSPEED_DEFAULT G_GINT64_CONSTANT(0)
54 
56 #define LRO_CONNECTTIMEOUT_DEFAULT 120L
57 
59 #define LRO_MAXMIRRORTRIES_DEFAULT 0L
60 
62 #define LRO_MAXMIRRORTRIES_MIN 0L
63 
65 #define LRO_MAXPARALLELDOWNLOADS_DEFAULT 3L
66 
68 #define LRO_MAXPARALLELDOWNLOADS_MIN 1L
69 
71 #define LRO_MAXPARALLELDOWNLOADS_MAX 20L
72 
74 #define LRO_MAXDOWNLOADSPERMIRROR_DEFAULT 3L
75 
77 #define LRO_MAXDOWNLOADSPERMIRROR_MIN 1L
78 
80 #define LRO_LOWSPEEDTIME_MIN 0L
81 
83 #define LRO_LOWSPEEDTIME_DEFAULT 120L
84 
86 #define LRO_LOWSPEEDLIMIT_MIN 0L
87 
89 #define LRO_LOWSPEEDLIMIT_DEFAULT 1000L
90 
92 #define LRO_IPRESOLVE_DEFAULT LR_IPRESOLVE_WHATEVER
93 
95 #define LRO_ALLOWEDMIRRORFAILURES_DEFAULT 4L
96 
98 #define LRO_ADAPTIVEMIRRORSORTING_DEFAULT 1L
99 
101 #define LRO_GNUPGHOMEDIR_DEFAULT NULL
102 
104 #define LRO_FASTESTMIRRORTIMEOUT_DEFAULT 2.0
105 
107 #define LRO_OFFLINE_DEFAULT 0L
108 
110 #define LRO_HTTPAUTHMETHODS_DEFAULT LR_AUTH_BASIC
111 
113 #define LRO_PROXYAUTHMETHODS_DEFAULT LR_AUTH_BASIC
114 
116 #define LRO_FTPUSEEPSV_DEFAULT 1L
117 
118 
120 typedef enum {
121 
236  LRO_FASTESTMIRRORMAXAGE, /*< (long)
237  Maximum age of a record in cache (seconds).
238  Default: 2592000 (30 days). */
239 
240  LRO_FASTESTMIRRORCB, /* (LrFastestMirrorCb)
241  Fastest mirror status callback */
242 
243  LRO_FASTESTMIRRORDATA, /* (void *)
244  User data for LRO_FASTESTMIRRORCB */
245 
246  LRO_LOWSPEEDTIME, /*< (long)
247  The time in seconds that the transfer should be below the
248  LRO_LOWSPEEDLIMIT for the library to consider it too slow
249  and abort. */
250 
251  LRO_LOWSPEEDLIMIT, /*< (long)
252  The transfer speed in bytes per second that the transfer
253  should be below during LRO_LOWSPEEDTIME seconds for
254  the library to consider it too slow and abort. */
255 
256  /* Repo common options */
257 
264  /* LR_YUMREPO specific options */
265 
271  LRO_RPMMDDLIST = LRO_YUMDLIST,
272 
277  LRO_RPMMDBLIST = LRO_YUMBLIST,
278 
358 } LrHandleOption;
361 typedef enum {
378  LRI_RPMMDDLIST = LRI_YUMDLIST,
382  LRI_RPMMDBLIST = LRI_YUMBLIST,
422  LRI_SENTINEL,
428 LrHandle *
430 
434 void
435 lr_handle_free(LrHandle *handle);
436 
444 gboolean
445 lr_handle_setopt(LrHandle *handle,
446  GError **err,
447  LrHandleOption option,
448  ...);
449 
463 gboolean
465  GError **err,
466  LrHandleInfoOption option,
467  ...);
468 
475 gboolean
476 lr_handle_perform(LrHandle *handle, LrResult *result, GError **err);
477 
480 G_END_DECLS
481 
482 #endif
LrHandleOption
Definition: handle.h:120
LrHandleInfoOption
Definition: handle.h:361
gboolean lr_handle_getinfo(LrHandle *handle, GError **err, LrHandleInfoOption option,...)
gboolean lr_handle_setopt(LrHandle *handle, GError **err, LrHandleOption option,...)
LrHandle * lr_handle_init()
gboolean lr_handle_perform(LrHandle *handle, LrResult *result, GError **err)
struct _LrResult LrResult
Definition: result.h:37
void lr_handle_free(LrHandle *handle)
struct _LrHandle LrHandle
Definition: handle.h:38