Browse Source

Add type field to IsoFilesystem. Minor documentation.

release-1.5.4.branch
Vreixo Formoso 14 years ago
parent
commit
0e87bf8792
  1. 1
      src/fs_image.c
  2. 36
      src/fs_image.h
  3. 1
      src/fs_local.c
  4. 19
      src/fsource.h
  5. 12
      src/libisofs.h
  6. 2
      src/node.c

1
src/fs_image.c

@ -1663,6 +1663,7 @@ int iso_image_filesystem_new(IsoDataSource *src, struct iso_read_opts *opts,
goto fs_cleanup;
}
strncpy(ifs->type, "iso ", 4);
ifs->data = data;
ifs->refcount = 1;
ifs->get_root = ifs_get_root;

36
src/fs_image.h

@ -24,22 +24,58 @@ typedef IsoFilesystem IsoImageFilesystem;
int iso_image_filesystem_new(IsoDataSource *src, struct iso_read_opts *opts,
int msgid, IsoImageFilesystem **fs);
/**
* Get the volset identifier for an existent image. The returned string belong
* to the IsoImageFilesystem and shouldn't be free() nor modified.
*/
const char *iso_image_fs_get_volset_id(IsoImageFilesystem *fs);
/**
* Get the volume identifier for an existent image. The returned string belong
* to the IsoImageFilesystem and shouldn't be free() nor modified.
*/
const char *iso_image_fs_get_volume_id(IsoImageFilesystem *fs);
/**
* Get the publisher identifier for an existent image. The returned string
* belong to the IsoImageFilesystem and shouldn't be free() nor modified.
*/
const char *iso_image_fs_get_publisher_id(IsoImageFilesystem *fs);
/**
* Get the data preparer identifier for an existent image. The returned string
* belong to the IsoImageFilesystem and shouldn't be free() nor modified.
*/
const char *iso_image_fs_get_data_preparer_id(IsoImageFilesystem *fs);
/**
* Get the system identifier for an existent image. The returned string belong
* to the IsoImageFilesystem and shouldn't be free() nor modified.
*/
const char *iso_image_fs_get_system_id(IsoImageFilesystem *fs);
/**
* Get the application identifier for an existent image. The returned string
* belong to the IsoImageFilesystem and shouldn't be free() nor modified.
*/
const char *iso_image_fs_get_application_id(IsoImageFilesystem *fs);
/**
* Get the copyright file identifier for an existent image. The returned string
* belong to the IsoImageFilesystem and shouldn't be free() nor modified.
*/
const char *iso_image_fs_get_copyright_file_id(IsoImageFilesystem *fs);
/**
* Get the abstract file identifier for an existent image. The returned string
* belong to the IsoImageFilesystem and shouldn't be free() nor modified.
*/
const char *iso_image_fs_get_abstract_file_id(IsoImageFilesystem *fs);
/**
* Get the biblio file identifier for an existent image. The returned string
* belong to the IsoImageFilesystem and shouldn't be free() nor modified.
*/
const char *iso_image_fs_get_biblio_file_id(IsoImageFilesystem *fs);
#endif /*LIBISO_FS_IMAGE_H_*/

1
src/fs_local.c

@ -629,6 +629,7 @@ int iso_local_filesystem_new(IsoFilesystem **fs)
}
/* fill struct */
strncpy(lfs->type, "file", 4);
lfs->refcount = 1;
lfs->data = NULL; /* we don't need private data */
lfs->get_root = lfs_get_root;

19
src/fsource.h

@ -26,6 +26,7 @@
typedef struct Iso_File_Source IsoFileSource;
typedef struct Iso_Filesystem IsoFilesystem;
typedef struct IsoFileSource_Iface IsoFileSourceIface;
/**
* See IsoFilesystem->get_id() for info about this.
@ -51,6 +52,12 @@ extern unsigned int iso_fs_global_id;
*/
struct Iso_Filesystem
{
/**
* Type of filesystem.
* "file" -> local filesystem
* "iso " -> iso image filesystem
*/
char type[4];
/**
* Get the root of a filesystem.
@ -123,7 +130,7 @@ struct Iso_Filesystem
void *data;
};
typedef struct IsoFileSource_Iface
struct IsoFileSource_Iface
{
/**
@ -306,7 +313,7 @@ typedef struct IsoFileSource_Iface
* TODO #00004 Add a get_mime_type() function.
* This can be useful for GUI apps, to choose the icon of the file
*/
} IsoFileSourceIface;
};
struct Iso_File_Source
{
@ -492,7 +499,15 @@ int iso_file_source_readlink(IsoFileSource *src, char *buf, size_t bufsiz);
*/
IsoFilesystem* iso_file_source_get_filesystem(IsoFileSource *src);
/**
* Take a ref to the given IsoFilesystem
*/
void iso_filesystem_ref(IsoFilesystem *fs);
/**
* Drop your ref to the given IsoFilesystem, evetually freeing associated
* resources.
*/
void iso_filesystem_unref(IsoFilesystem *fs);
/**

12
src/libisofs.h

@ -93,11 +93,13 @@ enum iso_replace_mode {
*/
};
typedef struct ecma119_write_opts Ecma119WriteOpts;
/**
* Holds the options for the image generation.
*/
typedef struct
{
struct ecma119_write_opts {
int level; /**< ISO level to write at. */
/** Which extensions to support. */
@ -252,9 +254,9 @@ typedef struct
* buffer.
*/
size_t fifo_size;
} Ecma119WriteOpts;
};
typedef struct Iso_Data_Source IsoDataSource;
typedef struct iso_data_source IsoDataSource;
/**
* Data source used by libisofs for reading an existing image.
@ -268,7 +270,7 @@ typedef struct Iso_Data_Source IsoDataSource;
* it with regular .iso images, and also with block devices that represent a
* drive.
*/
struct Iso_Data_Source {
struct iso_data_source {
/**
* Reference count for the data source. Should be 1 when a new source

2
src/node.c

@ -530,7 +530,7 @@ int iso_dir_iter_remove(IsoDirIter *iter)
}
/**
* Get the destination of a node (in UTF-8).
* Get the destination of a node.
* The returned string belongs to the node and should not be modified nor
* freed. Use strdup if you really need your own copy.
*/

Loading…
Cancel
Save