summaryrefslogtreecommitdiff
path: root/include/git2/config_backend.h
diff options
context:
space:
mode:
authorJakob Pfender <jpfender@elegosoft.com>2011-05-17 15:31:05 +0200
committerJakob Pfender <jpfender@elegosoft.com>2011-05-17 15:31:05 +0200
commit050e8877dda969b62f47a180b865a4447785e9c7 (patch)
tree42ba240edc5f0c0f49e7effe7f8881df2fdca775 /include/git2/config_backend.h
parente3c7786b22b385d7ec5049c5315c74bd37182e8c (diff)
parentc9662061f25ea51f39018a278b98c9a9b4410e84 (diff)
downloadlibgit2-050e8877dda969b62f47a180b865a4447785e9c7.tar.gz
Merge branch 'development' into unmerged
Diffstat (limited to 'include/git2/config_backend.h')
-rw-r--r--include/git2/config_backend.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/include/git2/config_backend.h b/include/git2/config_backend.h
new file mode 100644
index 000000000..427cd95dd
--- /dev/null
+++ b/include/git2/config_backend.h
@@ -0,0 +1,57 @@
+/*
+ * This file is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License, version 2,
+ * as published by the Free Software Foundation.
+ *
+ * In addition to the permissions in the GNU General Public License,
+ * the authors give you unlimited permission to link the compiled
+ * version of this file into combinations with other programs,
+ * and to distribute those combinations without any restriction
+ * coming from the use of this file. (The General Public License
+ * restrictions do apply in other respects; for example, they cover
+ * modification of the file, and distribution when not linked into
+ * a combined executable.)
+ *
+ * This file is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; see the file COPYING. If not, write to
+ * the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef INCLUDE_git_config_backend_h__
+#define INCLUDE_git_config_backend_h__
+
+#include "common.h"
+#include "types.h"
+#include "config.h"
+
+GIT_BEGIN_DECL
+
+struct git_config;
+
+struct git_config_backend {
+ struct git_config *cfg;
+ /* Open means open the file/database and parse if necessary */
+ int (*open)(struct git_config_backend *);
+ int (* get)(struct git_config_backend *, const char *key, const char **value);
+ int (* set)(struct git_config_backend *, const char *key, const char *value);
+ int (*foreach)(struct git_config_backend *, int (*fn)(const char *, void *), void *data);
+ void (*free)(struct git_config_backend *);
+};
+
+/**
+ * Create a file-backed configuration backend
+ *
+ * @param out the new backend
+ * @path where the config file is located
+ */
+GIT_EXTERN(int) git_config_backend_file(struct git_config_backend **out, const char *path);
+
+GIT_END_DECL
+
+#endif