Miscellaneous useful functions and macros.

Data Structures

struct  cr_EVR
struct  cr_NVREA
struct  cr_Version
struct  cr_HeaderRangeStruct

Defines

#define CR_UNUSED(x)   (void)(x)
#define CR_STATICSTRLEN(s)   (sizeof(s)/sizeof(s[0]))
#define CR_ARRAYLEN(x)   ((sizeof(x)/sizeof(0[x])) / ((size_t)(!(sizeof(x) % sizeof(0[x])))))
#define cr_compress_file(SRC, DST, COMTYPE, ERR)   cr_compress_file_with_stat(SRC, DST, COMTYPE, NULL, ERR)
#define cr_decompress_file(SRC, DST, COMTYPE, ERR)   cr_decompress_file_with_stat(SRC, DST, COMTYPE, NULL, ERR)
#define cr_cmp_nvrea(A, B)

Enumerations

enum  cr_CpFlags { CR_CP_DEFAULT = (1<<0), CR_CP_RECURSIVE = (1<<1), CR_CP_PRESERVE_ALL = (1<<2) }
enum  cr_RmFlags { CR_RM_DEFAULT = (1<<0), CR_RM_RECURSIVE = (1<<1), CR_RM_FORCE = (1<<2) }

Functions

const char * cr_flag_to_str (gint64 flags)
struct cr_EVR cr_str_to_evr (const char *string, GStringChunk *chunk)
struct cr_HeaderRangeStruct cr_get_header_byte_range (const char *filename, GError **err)
char * cr_get_filename (const char *filepath)
int cr_download (CURL *handle, const char *url, const char *destination, GError **err)
int cr_copy_file (const char *src, const char *dst, GError **err)
int cr_compress_file_with_stat (const char *src, const char *dst, cr_CompressionType comtype, cr_ContentStat *stat, GError **err)
int cr_decompress_file_with_stat (const char *src, const char *dst, cr_CompressionType comtype, cr_ContentStat *stat, GError **err)
int cr_better_copy_file (const char *src, const char *dst, GError **err)
int cr_remove_dir (const char *path, GError **err)
char * cr_normalize_dir_path (const char *path)
struct cr_Version cr_str_to_version (const char *str)
int cr_cmp_version_str (const char *str1, const char *str2)
void cr_null_log_fn (const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer user_data)
void cr_log_fn (const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer user_data)
void cr_slist_free_full (GSList *list, GDestroyNotify free_f)
struct cr_NVREAcr_split_rpm_filename (const char *filename)
void cr_nvrea_free (struct cr_NVREA *nvrea)
int cr_cmp_evr (const char *e1, const char *v1, const char *r1, const char *e2, const char *v2, const char *r2)
int cr_warning_cb (cr_XmlParserWarningType type, char *msg, void *cbdata, GError **err)
gboolean cr_write_to_file (GError **err, gchar *filename, const char *format,...)
gboolean cr_cp (const char *src, const char *dst, cr_CpFlags flags, const char *working_directory, GError **err)
gboolean cr_rm (const char *path, cr_RmFlags flags, const char *working_dir, GError **err)
gchar * cr_append_pid_and_datetime (const char *str, const char *suffix)
gboolean cr_spawn_check_exit_status (gint exit_status, GError **error)

Define Documentation

#define cr_cmp_nvrea ( A,
 ) 
Value:
(cr_cmp_evr((A)->epoch, (A)->version, (A)->release,\
                                        (B)->epoch, (B)->version, (B)->release))

Compare evr of two cr_NVREA. Name and arch are ignored.

Parameters:
A pointer to first cr_NVREA
B pointer to second cr_NVREA
Returns:
0 = same, 1 = first is newer, -1 = second is newer

Definition at line 297 of file misc.h.

#define cr_compress_file ( SRC,
DST,
COMTYPE,
ERR   )     cr_compress_file_with_stat(SRC, DST, COMTYPE, NULL, ERR)

Compress file.

Parameters:
SRC source filename
DST destination (If dst is dir, filename of src + compression suffix is used. If dst is NULL, src + compression suffix is used)
COMTYPE type of compression
ERR GError **
Returns:
cr_Error return code

Definition at line 164 of file misc.h.

#define cr_decompress_file ( SRC,
DST,
COMTYPE,
ERR   )     cr_decompress_file_with_stat(SRC, DST, COMTYPE, NULL, ERR)

Decompress file.

Parameters:
SRC source filename
DST destination (If dst is dir, filename of src without compression suffix (if present) is used. If dst is NULL, src without compression suffix is used) Otherwise ".decompressed" suffix is used
COMTYPE type of compression
ERR GError **
Returns:
cr_Error return code

Definition at line 193 of file misc.h.

#define CR_STATICSTRLEN (  )     (sizeof(s)/sizeof(s[0]))

Lenght of static string (including last '' byte)

Definition at line 44 of file misc.h.

#define CR_UNUSED (  )     (void)(x)

Macro for supress compiler warning about unused param.

Definition at line 40 of file misc.h.


Enumeration Type Documentation

enum cr_CpFlags
Enumerator:
CR_CP_DEFAULT 

No attributes - default

CR_CP_RECURSIVE 

Copy directories recursively

CR_CP_PRESERVE_ALL 

preserve the all attributes (if possible)

Definition at line 401 of file misc.h.

enum cr_RmFlags
Enumerator:
CR_RM_DEFAULT 

No attributes - default

CR_RM_RECURSIVE 

Copy directories recursively

CR_RM_FORCE 

Use force

Definition at line 424 of file misc.h.


Function Documentation

gchar* cr_append_pid_and_datetime ( const char *  str,
const char *  suffix 
)

Append "YYYYmmddHHMMSS.MICROSECONDS.PID" suffix to the str.

Parameters:
str String or NULL
suffix Another string that will be appended or NULL
return Newly allocated string
int cr_better_copy_file ( const char *  src,
const char *  dst,
GError **  err 
)

Better copy file. Source (src) could be remote address (http:// or ftp://).

Parameters:
src source filename
dst destination (if dst is dir, filename of src is used)
err GError **
Returns:
cr_Error return code
int cr_cmp_evr ( const char *  e1,
const char *  v1,
const char *  r1,
const char *  e2,
const char *  v2,
const char *  r2 
)

Compare two version strings splited into evr chunks.

Parameters:
e1 1. epoch
v1 1. version
r1 1. release
e2 2. epoch
v2 2. version
r2 2. release
Returns:
0 = same, 1 = first is newer, -1 = second is newer
int cr_cmp_version_str ( const char *  str1,
const char *  str2 
)

Compare two version string.

Parameters:
str1 first version string
str2 second version string
Returns:
0 - versions are same, 1 - first string is bigger version, 2 - second string is bigger version
int cr_compress_file_with_stat ( const char *  src,
const char *  dst,
cr_CompressionType  comtype,
cr_ContentStat stat,
GError **  err 
)

Compress file.

Parameters:
src source filename
dst destination (If dst is dir, filename of src + compression suffix is used. If dst is NULL, src + compression suffix is used)
comtype type of compression
stat pointer to cr_ContentStat or NULL
err GError **
Returns:
cr_Error return code
int cr_copy_file ( const char *  src,
const char *  dst,
GError **  err 
)

Copy file.

Parameters:
src source filename
dst destination (if dst is dir, filename of src is used)
err GError **
Returns:
cr_Error return code
gboolean cr_cp ( const char *  src,
const char *  dst,
cr_CpFlags  flags,
const char *  working_directory,
GError **  err 
)

Recursive copy of directory (works on files as well)

Parameters:
src Source (supports wildcards)
dst Destination (supports wildcards)
flags Flags
working_dir Working directory
err GError **
int cr_decompress_file_with_stat ( const char *  src,
const char *  dst,
cr_CompressionType  comtype,
cr_ContentStat stat,
GError **  err 
)

Decompress file.

Parameters:
src source filename
dst destination (If dst is dir, filename of src without compression suffix (if present) is used. If dst is NULL, src without compression suffix is used) Otherwise ".decompressed" suffix is used
comtype type of compression
stat pointer to cr_ContentStat or NULL
err GError **
Returns:
cr_Error return code
int cr_download ( CURL *  handle,
const char *  url,
const char *  destination,
GError **  err 
)

Download a file from the URL into the in_dst via curl handle.

Parameters:
handle CURL handle
url source url
destination destination (if destination is dir, filename from the url is used)
err GError **
Returns:
cr_Error
const char* cr_flag_to_str ( gint64  flags  ) 

Convert flags from RPM header to a string representation.

Parameters:
flags flags
Returns:
flags as constant string
char* cr_get_filename ( const char *  filepath  ) 

Return pointer to the rest of string after last '/'. (e.g. for "/foo/bar" returns "bar")

Parameters:
filepath path
Returns:
pointer into the path
struct cr_HeaderRangeStruct cr_get_header_byte_range ( const char *  filename,
GError **  err 
) [read]

Return header byte range.

Parameters:
filename filename
err GError **
Returns:
header range (start = end = 0 on error)
void cr_log_fn ( const gchar *  log_domain,
GLogLevelFlags  log_level,
const gchar *  message,
gpointer  user_data 
)

Createrepo_c library standard logging function.

Parameters:
log_domain logging domain
log_level logging level
message message
user_data user data
char* cr_normalize_dir_path ( const char *  path  ) 

Normalize path (Path with exactly one trailing '/').

Parameters:
path path
Returns:
mallocated string with normalized path or NULL
void cr_null_log_fn ( const gchar *  log_domain,
GLogLevelFlags  log_level,
const gchar *  message,
gpointer  user_data 
)

Logging function with no output.

Parameters:
log_domain logging domain
log_level logging level
message message
user_data user data
void cr_nvrea_free ( struct cr_NVREA nvrea  ) 

Free struct cr_NVREA.

Parameters:
nvrea struct cr_NVREA
int cr_remove_dir ( const char *  path,
GError **  err 
)

Recursively remove directory.

Parameters:
path filepath
err GError **
Returns:
cr_Error return code
gboolean cr_rm ( const char *  path,
cr_RmFlags  flags,
const char *  working_dir,
GError **  err 
)

Wrapper over rm command

Parameters:
path Path (supports wildcards)
flags Flags
working_dir Working directory
err GError **
void cr_slist_free_full ( GSList *  list,
GDestroyNotify  free_f 
)

Frees all the memory used by a GSList, and calls the specified destroy function on every element's data. This is the same function as g_slist_free_full(). The original function is implemented in glib since 2.28 but we need to support the older glib too.

Parameters:
list pointer to GSList
free_f the function to be called to free each element's data
gboolean cr_spawn_check_exit_status ( gint  exit_status,
GError **  error 
)

Createrepo_c's reimplementation of convinient g_spawn_check_exit_status() function which is available since glib 2.34 (createrepo_c is currently compatible with glib >= 2.28)

Parameters:
exit_status An exit code as returned from g_spawn_sync()
error GError **
Returns:
TRUE if child exited successfully, FALSE otherwise (and error will be set)
struct cr_NVREA* cr_split_rpm_filename ( const char *  filename  )  [read]

Split filename into the NVREA structure.

Parameters:
filename filename
Returns:
struct cr_NVREA
struct cr_EVR cr_str_to_evr ( const char *  string,
GStringChunk *  chunk 
) [read]

Convert epoch-version-release string into cr_EVR structure. If no GStringChunk passed, all non NULL items in returned structure are malloced and in that case, you have to free all non-NULL element yourself.

Parameters:
string NULL terminated n-v-r string
chunk string chunk for strings (optional - could be NULL)
Returns:
filled NVR
struct cr_Version cr_str_to_version ( const char *  str  )  [read]

Convert version string into cr_Version struct.

Parameters:
str version string
Returns:
cr_Version
int cr_warning_cb ( cr_XmlParserWarningType  type,
char *  msg,
void *  cbdata,
GError **  err 
)

Warning callback for xml parser warnings. For use in xml parsers like primary, filelists, other or repomd parser. Name of the parser should be passed as a string via warning callback data (warningcb_data) argument of the parser.

gboolean cr_write_to_file ( GError **  err,
gchar *  filename,
const char *  format,
  ... 
)

Open file and write content.

Parameters:
err GError **
filename Filename
format Format string
... Arguments

Generated on 22 Oct 2014 for createrepo_c library by  doxygen 1.6.1