00001
00002
00011 #ifndef __LIBISOFS
00012 #define __LIBISOFS
00013
00018 struct iso_volume;
00019
00024 struct iso_tree_dir;
00025
00030 struct iso_tree_file;
00031
00035 enum iso_name_version {
00036 ISO_NAME_FULL,
00037 ISO_NAME_ISO,
00038 ISO_NAME_ISO_L1,
00039 ISO_NAME_ISO_L2,
00040 ISO_NAME_ROCKRIDGE,
00041 ISO_NAME_JOLIET
00042 };
00043
00048 struct iso_volume *iso_volume_new(const char *volume_id, const char *publisher_id, const char *data_preparer_id);
00049
00053 void iso_volume_free(struct iso_volume *volume);
00054
00058 struct iso_tree_dir *iso_volume_get_root(const struct iso_volume *volume);
00059
00063 void iso_volume_set_volume_id(struct iso_volume *volume, const char *volume_id);
00064
00068 void iso_volume_set_publisher_id(struct iso_volume *volume, const char *publisher_id);
00069
00073 void iso_volume_set_data_preparer_id(struct iso_volume *volume, const char *data_preparer_id);
00074
00078 int iso_volume_get_iso_level(const struct iso_volume *volume);
00079
00084 void iso_volume_set_iso_level(struct iso_volume *volume, int level);
00085
00089 int iso_volume_get_rockridge(const struct iso_volume *volume);
00090
00094 void iso_volume_set_rockridge(struct iso_volume *volume, int rockridge);
00095
00099 int iso_volume_get_joliet(const struct iso_volume *volume);
00100
00104 void iso_volume_set_joliet(struct iso_volume *volume, int joliet);
00105
00110 struct iso_tree_file *iso_tree_add_file(struct iso_tree_dir *parent, const char *path);
00111
00117 struct iso_tree_dir *iso_tree_add_dir(struct iso_tree_dir *parent, const char *path);
00118
00125 struct iso_tree_dir *iso_tree_radd_dir(struct iso_tree_dir *parent, const char *path);
00126
00131 struct iso_tree_dir *iso_tree_add_new_dir(struct iso_tree_dir *parent, const char *name);
00132
00136 const char *iso_tree_file_get_name(const struct iso_tree_file *file, enum iso_name_version ver);
00137
00142 void iso_tree_file_set_name(struct iso_tree_file *file, const char *name);
00143
00147 const char *iso_tree_dir_get_name(const struct iso_tree_dir *dir, enum iso_name_version ver);
00148
00153 void iso_tree_dir_set_name(struct iso_tree_dir *dir, const char *name);
00154
00159 void iso_tree_print(const struct iso_tree_dir *root, int spaces);
00160
00161 #endif