Commit Graph

627 Commits

Author SHA1 Message Date
Vreixo Formoso aa312cf7d7 Fix bug in IsoFileSrc implementation, related to a wrogn usage of tsearch.
It happens that tsearch seems to not return a pointer to the inserted element,
but a pointer to a pointer to the inserted element (that makes sense, as we
are inserted pointers...). This bug, thus, was related to a wrong 
understanding of the tsearch API!
2007-12-15 16:48:50 +01:00
Vreixo Formoso 7b241176fb Init implementation of IsoFileSrc.
Ecma119Image, defined for first time in this commit, is the context for image 
written. It keeps the low level objects needed during image written.

IsoFileSrc is the low level object that takes care about the info needed to
write file contents to image. It takes care about reading from Stream in 2K
block chunks. To prevent the same file be written twice to image, we keep in
Ecma119Image a search tree, indexed by the triple key (fs, device, inode) that
uniquelly identifies a source.
2007-12-15 13:13:49 +01:00
Vreixo Formoso dd83f85d09 Support for identification of source Streams.
We identify uniquelly a given source Stream by a triple of numbers: the
filesystem id, the device id inside the filesystem, and the inode id.
2007-12-15 12:51:48 +01:00
Vreixo Formoso 8f7222609e Add support for generating ISO identifiers from ASCII strings. 2007-12-14 22:13:00 +01:00
Vreixo Formoso 315f1a1717 Support for charset conversion from any encoding to ASCII. 2007-12-14 21:42:55 +01:00
Vreixo Formoso 115da82c9e First util functions, with corresponding unit test. 2007-12-13 21:02:36 +01:00
Vreixo Formoso 60d68df84c Expose iso_node_set_hidden(), to let a node be hidden in RR/ISO or Joliet tree. 2007-12-13 20:27:58 +01:00
Vreixo Formoso d10ed353e2 Implement function to recursively add a dir to an iso tree.
This commit also to the following changes:
- create_node() on builder never frees the IsoFileSource, it is responsability 
  of the caller to free it.
- Recursive addition options added to IsoImage (not exposed to public API yet)
- create_node() takes care about follow_symlinks
- Added little demo program to test it.
2007-12-11 22:47:04 +01:00
Vreixo Formoso 0306bb5daf Redefine readdir() on IsoFileSource, to skip "." and ".." dirs. 2007-12-11 22:41:18 +01:00
Vreixo Formoso 008871cfd8 Additon of nodes based on Builder. Pass Image as a parameter to builder methods. 2007-12-09 18:47:29 +01:00
Vreixo Formoso e28f924913 Ensure local filesystem is deleted when needed. 2007-12-08 02:49:27 +01:00
Vreixo Formoso b03fbf0ee0 Implement function to get node from path on image. Little unit test too. 2007-12-08 01:39:31 +01:00
Vreixo Formoso f04ddb4435 Add getter and setter for sort_weight. 2007-12-07 22:36:26 +01:00
Vreixo Formoso 70b9b87150 Expose iso_node_get_type(). 2007-12-07 22:25:31 +01:00
Vreixo Formoso 27670f8d3a More tests related with iso tree. 2007-12-07 22:20:14 +01:00
Vreixo Formoso 7d417e9fa6 Added a mocked filesystem to simulate a real filesystem in tests. 2007-12-07 17:29:27 +01:00
Vreixo Formoso 45f4d0a29e Add function to add an exiting file to the iso tree.
Node is created using a builder. Default builder and filesystem is added 
to IsoImage. Later we should expose setters for this atts.
2007-12-07 03:02:46 +01:00
Vreixo Formoso c93fa154d5 Getters and setters for time attributes on IsoNode. 2007-12-06 22:52:01 +01:00
Vreixo Formoso 7f9c5c9065 Unit test for tree functions. Little fixes. 2007-12-06 22:45:16 +01:00
Vreixo Formoso 5df6b2c3d2 Fix bug in tree functions. 2007-12-06 16:44:52 +01:00
Vreixo Formoso dad43d9ede Add some unit tests related to IsoNode. 2007-12-06 16:19:14 +01:00
Vreixo Formoso 5abb569e0c Keep children sorted when renaming a node. 2007-12-06 16:18:51 +01:00
Vreixo Formoso b2d41de603 Allow adding of special files to iso tree node. 2007-12-06 02:43:24 +01:00
Vreixo Formoso 007be29c6d Fix little bug: ensure number of children is incremented when adding a
new node to a dir.
2007-12-06 02:38:19 +01:00
Vreixo Formoso d4deb4866f Take care about duplicate node names in iso_node_set_name(). 2007-12-06 02:22:11 +01:00
Vreixo Formoso 06db9a3c73 Free destination on IsoSymlinks. 2007-12-06 02:13:01 +01:00
Vreixo Formoso f62c34776f Begin implementation of tree operations. 2007-12-06 02:11:05 +01:00
Vreixo Formoso 8e7fe9b5a5 Add replace flag to iso_dir_add_node(). 2007-12-05 22:37:57 +01:00
Vreixo Formoso 14f4aa7d07 Init builder implementation. 2007-12-04 22:33:40 +01:00
Vreixo Formoso 6616eae76b Unref Stream when freeing a IsoFile. 2007-12-03 21:53:20 +01:00
Vreixo Formoso 8edc9f2639 Implementation of IsoStream for IsoFileSources. 2007-12-02 22:04:26 +01:00
Vreixo Formoso b35e090c1b Add stat() function to IsoFileSource interface. 2007-12-02 22:03:29 +01:00
Vreixo Formoso 0ba8a7a85e Add message queue facilities. Each IsoImage will have its own msg queue. 2007-12-02 20:11:44 +01:00
Vreixo Formoso d916b60172 Add getters and setters for image properties, together with unit tests. 2007-12-02 19:49:11 +01:00
Vreixo Formoso c83bac7d9e Add IsoImage, equivalent to old libisofs volume and volset.
IsoImage will be a context for image creation and modification.
2007-12-02 19:10:30 +01:00
Vreixo Formoso f2deae8503 Set parent of a root node to point to itself.
This way we can ensure a root node is not added to another dir.
2007-12-02 19:08:51 +01:00
Vreixo Formoso c587c79220 Ensure parent is set to NULL on children of a deleted directory. 2007-12-02 19:02:56 +01:00
Vreixo Formoso 0c03ad051b Add function to create a new root. 2007-12-02 18:54:55 +01:00
Vreixo Formoso 79c37ff193 Little changes. 2007-12-02 17:59:36 +01:00
Vreixo Formoso 5fa2490a48 Take and remove functions based on iterator. 2007-12-02 17:17:04 +01:00
Vreixo Formoso baa6238579 Unit test for iso_node_take(). 2007-12-02 17:01:12 +01:00
Vreixo Formoso 78fba4c14f Add unit test for dir iteration. Implementation of iso_dir_iter_free(). 2007-12-02 16:39:58 +01:00
Vreixo Formoso 5ec93b50f4 Add functions to remove nodes from a dir. Handle deletion of dirs
2007-12-01 02:43:37 +01:00
Vreixo Formoso 051538b5c2 Add functions to iterate over directory children. 2007-12-01 02:22:00 +01:00
Vreixo Formoso e068fd1cf6 Getter for number of children in a dir. 2007-12-01 01:45:35 +01:00
Vreixo Formoso a4f283fac6 Functions to add and get a node inside a dir. 2007-12-01 01:42:21 +01:00
Vreixo Formoso 3c7f1285d6 Add default skel for unit tests. Move test programs to demo. 2007-11-29 22:06:56 +01:00
Vreixo Formoso efff783602 Added getters/setters from IsoNode permissions and owners. 2007-11-27 20:41:09 +01:00
Vreixo Formoso b9152421f3 Define and document IsoStream interface. 2007-11-27 00:27:57 +01:00
Vreixo Formoso 100919a5cb Fix little bug, close() must mark a file as closed! 2007-11-26 21:46:26 +01:00