113 lines
2.8 KiB
C
113 lines
2.8 KiB
C
|
/*
|
||
|
* Copyright (c) 2007 Vreixo Formoso
|
||
|
*
|
||
|
* This file is part of the libisofs project; you can redistribute it and/or
|
||
|
* modify it under the terms of the GNU General Public License version 2 as
|
||
|
* published by the Free Software Foundation. See COPYING file for details.
|
||
|
*/
|
||
|
#ifndef LIBISO_IMAGE_H_
|
||
|
#define LIBISO_IMAGE_H_
|
||
|
|
||
|
#include "libisofs.h"
|
||
|
#include "node.h"
|
||
|
#include "fsource.h"
|
||
|
#include "builder.h"
|
||
|
|
||
|
/*
|
||
|
* Image is a context for image manipulation.
|
||
|
* Global objects such as the message_queues must belogn to that
|
||
|
* context. Thus we will have, for example, a msg queue per image,
|
||
|
* so images are completelly independent and can be managed together.
|
||
|
* (Usefull, for example, in Multiple-Document-Interface GUI apps.
|
||
|
* [The stuff we have in init belongs really to image!]
|
||
|
*/
|
||
|
|
||
|
struct Iso_Image
|
||
|
{
|
||
|
|
||
|
int refcount;
|
||
|
|
||
|
IsoDir *root;
|
||
|
|
||
|
char *volset_id;
|
||
|
|
||
|
char *volume_id; /**< Volume identifier. */
|
||
|
char *publisher_id; /**< Volume publisher. */
|
||
|
char *data_preparer_id; /**< Volume data preparer. */
|
||
|
char *system_id; /**< Volume system identifier. */
|
||
|
char *application_id; /**< Volume application id */
|
||
|
char *copyright_file_id;
|
||
|
char *abstract_file_id;
|
||
|
char *biblio_file_id;
|
||
|
|
||
|
/* el-torito boot catalog */
|
||
|
struct el_torito_boot_catalog *bootcat;
|
||
|
|
||
|
/* image identifier, for message origin identifier */
|
||
|
int id;
|
||
|
|
||
|
/**
|
||
|
* Default filesystem to use when adding files to the image tree.
|
||
|
*/
|
||
|
IsoFilesystem *fs;
|
||
|
|
||
|
/*
|
||
|
* Default builder to use when adding files to the image tree.
|
||
|
*/
|
||
|
IsoNodeBuilder *builder;
|
||
|
|
||
|
/**
|
||
|
* Whether to follow symlinks or just add them as symlinks
|
||
|
*/
|
||
|
unsigned int follow_symlinks : 1;
|
||
|
|
||
|
/**
|
||
|
* Whether to skip hidden files
|
||
|
*/
|
||
|
unsigned int ignore_hidden : 1;
|
||
|
|
||
|
/**
|
||
|
* Flags that determine what special files should be ignore. It is a
|
||
|
* bitmask:
|
||
|
* bit0: ignore FIFOs
|
||
|
* bit1: ignore Sockets
|
||
|
* bit2: ignore char devices
|
||
|
* bit3: ignore block devices
|
||
|
*/
|
||
|
int ignore_special;
|
||
|
|
||
|
/**
|
||
|
* Files to exclude. Wildcard support is included.
|
||
|
*/
|
||
|
char** excludes;
|
||
|
int nexcludes;
|
||
|
|
||
|
/**
|
||
|
* if the dir already contains a node with the same name, whether to
|
||
|
* replace or not the old node with the new.
|
||
|
*/
|
||
|
enum iso_replace_mode replace;
|
||
|
|
||
|
/* TODO
|
||
|
enum iso_replace_mode (*confirm_replace)(IsoFileSource *src, IsoNode *node);
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* When this is not NULL, it is a pointer to a function that will
|
||
|
* be called just before a file will be added. You can control where
|
||
|
* the file will be in fact added or ignored.
|
||
|
*
|
||
|
* @return
|
||
|
* 1 add, 0 ignore, < 0 cancel
|
||
|
*/
|
||
|
int (*report)(IsoImage *image, IsoFileSource *src);
|
||
|
|
||
|
/**
|
||
|
* User supplied data
|
||
|
*/
|
||
|
void *user_data;
|
||
|
void (*user_data_free)(void *ptr);
|
||
|
};
|
||
|
|
||
|
#endif /*LIBISO_IMAGE_H_*/
|