In-memory modifiable filesystem tree

In-memory modifiable filesystem tree — Modifiable filesystem tree

Synopsis

typedef             OstreeMutableTree;
OstreeMutableTree * ostree_mutable_tree_new             (void);
void                ostree_mutable_tree_set_metadata_checksum
                                                        (OstreeMutableTree *self,
                                                         const char *checksum);
const char *        ostree_mutable_tree_get_metadata_checksum
                                                        (OstreeMutableTree *self);
void                ostree_mutable_tree_set_contents_checksum
                                                        (OstreeMutableTree *self,
                                                         const char *checksum);
const char *        ostree_mutable_tree_get_contents_checksum
                                                        (OstreeMutableTree *self);
gboolean            ostree_mutable_tree_replace_file    (OstreeMutableTree *self,
                                                         const char *name,
                                                         const char *checksum,
                                                         GError **error);
gboolean            ostree_mutable_tree_ensure_dir      (OstreeMutableTree *self,
                                                         const char *name,
                                                         OstreeMutableTree **out_subdir,
                                                         GError **error);
gboolean            ostree_mutable_tree_lookup          (OstreeMutableTree *self,
                                                         const char *name,
                                                         char **out_file_checksum,
                                                         OstreeMutableTree **out_subdir,
                                                         GError **error);
gboolean            ostree_mutable_tree_ensure_parent_dirs
                                                        (OstreeMutableTree *self,
                                                         GPtrArray *split_path,
                                                         const char *metadata_checksum,
                                                         OstreeMutableTree **out_parent,
                                                         GError **error);
gboolean            ostree_mutable_tree_walk            (OstreeMutableTree *self,
                                                         GPtrArray *split_path,
                                                         guint start,
                                                         OstreeMutableTree **out_subdir,
                                                         GError **error);
GHashTable *        ostree_mutable_tree_get_subdirs     (OstreeMutableTree *self);
GHashTable *        ostree_mutable_tree_get_files       (OstreeMutableTree *self);

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]