In-memory modifiable filesystem tree

In-memory modifiable filesystem tree — Modifiable filesystem tree

Description

In order to commit content into an OstreeRepo, it must first be imported into an OstreeMutableTree. There are several high level APIs to create an initiable OstreeMutableTree from a physical filesystem directory, but they may also be computed programmatically.

Details

OstreeMutableTree

typedef struct OstreeMutableTree OstreeMutableTree;

Private instance structure.


ostree_mutable_tree_new ()

OstreeMutableTree * ostree_mutable_tree_new             (void);

Returns :

A new tree. [transfer full]

ostree_mutable_tree_set_metadata_checksum ()

void                ostree_mutable_tree_set_metadata_checksum
                                                        (OstreeMutableTree *self,
                                                         const char *checksum);

ostree_mutable_tree_get_metadata_checksum ()

const char *        ostree_mutable_tree_get_metadata_checksum
                                                        (OstreeMutableTree *self);

ostree_mutable_tree_set_contents_checksum ()

void                ostree_mutable_tree_set_contents_checksum
                                                        (OstreeMutableTree *self,
                                                         const char *checksum);

ostree_mutable_tree_get_contents_checksum ()

const char *        ostree_mutable_tree_get_contents_checksum
                                                        (OstreeMutableTree *self);

ostree_mutable_tree_replace_file ()

gboolean            ostree_mutable_tree_replace_file    (OstreeMutableTree *self,
                                                         const char *name,
                                                         const char *checksum,
                                                         GError **error);

ostree_mutable_tree_ensure_dir ()

gboolean            ostree_mutable_tree_ensure_dir      (OstreeMutableTree *self,
                                                         const char *name,
                                                         OstreeMutableTree **out_subdir,
                                                         GError **error);

ostree_mutable_tree_lookup ()

gboolean            ostree_mutable_tree_lookup          (OstreeMutableTree *self,
                                                         const char *name,
                                                         char **out_file_checksum,
                                                         OstreeMutableTree **out_subdir,
                                                         GError **error);

ostree_mutable_tree_ensure_parent_dirs ()

gboolean            ostree_mutable_tree_ensure_parent_dirs
                                                        (OstreeMutableTree *self,
                                                         GPtrArray *split_path,
                                                         const char *metadata_checksum,
                                                         OstreeMutableTree **out_parent,
                                                         GError **error);

Create all parent trees necessary for the given split_path to exist.

self :

Tree

split_path :

File path components. [element-type utf8]

metadata_checksum :

SHA256 checksum for metadata

out_parent :

The parent tree. [out][transfer full]

error :

a GError

ostree_mutable_tree_walk ()

gboolean            ostree_mutable_tree_walk            (OstreeMutableTree *self,
                                                         GPtrArray *split_path,
                                                         guint start,
                                                         OstreeMutableTree **out_subdir,
                                                         GError **error);

Traverse start number of elements starting from split_path; the child will be returned in out_subdir.

self :

Tree

split_path :

Split pathname. [element-type utf8]

start :

Descend from this number of elements in split_path

out_subdir :

Target parent. [out][transfer full]

error :

Error

ostree_mutable_tree_get_subdirs ()

GHashTable *        ostree_mutable_tree_get_subdirs     (OstreeMutableTree *self);

Returns :

All children directories. [transfer none][element-type utf8 OstreeMutableTree]

ostree_mutable_tree_get_files ()

GHashTable *        ostree_mutable_tree_get_files       (OstreeMutableTree *self);

Returns :

All children files (the value is a checksum). [transfer none][element-type utf8 utf8]