mirror of
https://github.com/SkinnyMind/libgit2dart.git
synced 2025-05-05 12:49:08 -04:00
feat: generate bindings with ffigen
This commit is contained in:
parent
9d81c715ff
commit
1414d5f6d7
95 changed files with 38582 additions and 6 deletions
|
@ -1,130 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) the libgit2 contributors. All rights reserved.
|
||||
*
|
||||
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
||||
* a Linking Exception. For full terms see the included COPYING file.
|
||||
*/
|
||||
#ifndef INCLUDE_sys_git_config_backend_h__
|
||||
#define INCLUDE_sys_git_config_backend_h__
|
||||
|
||||
#include "git2/common.h"
|
||||
#include "git2/types.h"
|
||||
#include "git2/config.h"
|
||||
|
||||
/**
|
||||
* @file git2/sys/config.h
|
||||
* @brief Git config backend routines
|
||||
* @defgroup git_backend Git custom backend APIs
|
||||
* @ingroup Git
|
||||
* @{
|
||||
*/
|
||||
GIT_BEGIN_DECL
|
||||
|
||||
/**
|
||||
* Every iterator must have this struct as its first element, so the
|
||||
* API can talk to it. You'd define your iterator as
|
||||
*
|
||||
* struct my_iterator {
|
||||
* git_config_iterator parent;
|
||||
* ...
|
||||
* }
|
||||
*
|
||||
* and assign `iter->parent.backend` to your `git_config_backend`.
|
||||
*/
|
||||
struct git_config_iterator {
|
||||
git_config_backend *backend;
|
||||
unsigned int flags;
|
||||
|
||||
/**
|
||||
* Return the current entry and advance the iterator. The
|
||||
* memory belongs to the library.
|
||||
*/
|
||||
int GIT_CALLBACK(next)(git_config_entry **entry, git_config_iterator *iter);
|
||||
|
||||
/**
|
||||
* Free the iterator
|
||||
*/
|
||||
void GIT_CALLBACK(free)(git_config_iterator *iter);
|
||||
};
|
||||
|
||||
/**
|
||||
* Generic backend that implements the interface to
|
||||
* access a configuration file
|
||||
*/
|
||||
struct git_config_backend {
|
||||
unsigned int version;
|
||||
/** True if this backend is for a snapshot */
|
||||
int readonly;
|
||||
struct git_config *cfg;
|
||||
|
||||
/* Open means open the file/database and parse if necessary */
|
||||
int GIT_CALLBACK(open)(struct git_config_backend *, git_config_level_t level, const git_repository *repo);
|
||||
int GIT_CALLBACK(get)(struct git_config_backend *, const char *key, git_config_entry **entry);
|
||||
int GIT_CALLBACK(set)(struct git_config_backend *, const char *key, const char *value);
|
||||
int GIT_CALLBACK(set_multivar)(git_config_backend *cfg, const char *name, const char *regexp, const char *value);
|
||||
int GIT_CALLBACK(del)(struct git_config_backend *, const char *key);
|
||||
int GIT_CALLBACK(del_multivar)(struct git_config_backend *, const char *key, const char *regexp);
|
||||
int GIT_CALLBACK(iterator)(git_config_iterator **, struct git_config_backend *);
|
||||
/** Produce a read-only version of this backend */
|
||||
int GIT_CALLBACK(snapshot)(struct git_config_backend **, struct git_config_backend *);
|
||||
/**
|
||||
* Lock this backend.
|
||||
*
|
||||
* Prevent any writes to the data store backing this
|
||||
* backend. Any updates must not be visible to any other
|
||||
* readers.
|
||||
*/
|
||||
int GIT_CALLBACK(lock)(struct git_config_backend *);
|
||||
/**
|
||||
* Unlock the data store backing this backend. If success is
|
||||
* true, the changes should be committed, otherwise rolled
|
||||
* back.
|
||||
*/
|
||||
int GIT_CALLBACK(unlock)(struct git_config_backend *, int success);
|
||||
void GIT_CALLBACK(free)(struct git_config_backend *);
|
||||
};
|
||||
#define GIT_CONFIG_BACKEND_VERSION 1
|
||||
#define GIT_CONFIG_BACKEND_INIT {GIT_CONFIG_BACKEND_VERSION}
|
||||
|
||||
/**
|
||||
* Initializes a `git_config_backend` with default values. Equivalent to
|
||||
* creating an instance with GIT_CONFIG_BACKEND_INIT.
|
||||
*
|
||||
* @param backend the `git_config_backend` struct to initialize.
|
||||
* @param version Version of struct; pass `GIT_CONFIG_BACKEND_VERSION`
|
||||
* @return Zero on success; -1 on failure.
|
||||
*/
|
||||
GIT_EXTERN(int) git_config_init_backend(
|
||||
git_config_backend *backend,
|
||||
unsigned int version);
|
||||
|
||||
/**
|
||||
* Add a generic config file instance to an existing config
|
||||
*
|
||||
* Note that the configuration object will free the file
|
||||
* automatically.
|
||||
*
|
||||
* Further queries on this config object will access each
|
||||
* of the config file instances in order (instances with
|
||||
* a higher priority level will be accessed first).
|
||||
*
|
||||
* @param cfg the configuration to add the file to
|
||||
* @param file the configuration file (backend) to add
|
||||
* @param level the priority level of the backend
|
||||
* @param repo optional repository to allow parsing of
|
||||
* conditional includes
|
||||
* @param force if a config file already exists for the given
|
||||
* priority level, replace it
|
||||
* @return 0 on success, GIT_EEXISTS when adding more than one file
|
||||
* for a given priority level (and force_replace set to 0), or error code
|
||||
*/
|
||||
GIT_EXTERN(int) git_config_add_backend(
|
||||
git_config *cfg,
|
||||
git_config_backend *file,
|
||||
git_config_level_t level,
|
||||
const git_repository *repo,
|
||||
int force);
|
||||
|
||||
/** @} */
|
||||
GIT_END_DECL
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue