Blame src/attrcache.h

Packit Service 20376f
/*
Packit Service 20376f
 * Copyright (C) the libgit2 contributors. All rights reserved.
Packit Service 20376f
 *
Packit Service 20376f
 * This file is part of libgit2, distributed under the GNU GPL v2 with
Packit Service 20376f
 * a Linking Exception. For full terms see the included COPYING file.
Packit Service 20376f
 */
Packit Service 20376f
#ifndef INCLUDE_attrcache_h__
Packit Service 20376f
#define INCLUDE_attrcache_h__
Packit Service 20376f
Packit Service 20376f
#include "attr_file.h"
Packit Service 20376f
#include "strmap.h"
Packit Service 20376f
Packit Service 20376f
#define GIT_ATTR_CONFIG       "core.attributesfile"
Packit Service 20376f
#define GIT_IGNORE_CONFIG     "core.excludesfile"
Packit Service 20376f
Packit Service 20376f
typedef struct {
Packit Service 20376f
	char *cfg_attr_file; /* cached value of core.attributesfile */
Packit Service 20376f
	char *cfg_excl_file; /* cached value of core.excludesfile */
Packit Service 20376f
	git_strmap *files;	 /* hash path to git_attr_cache_entry records */
Packit Service 20376f
	git_strmap *macros;	 /* hash name to vector<git_attr_assignment> */
Packit Service 20376f
	git_mutex lock;
Packit Service 20376f
	git_pool  pool;
Packit Service 20376f
} git_attr_cache;
Packit Service 20376f
Packit Service 20376f
extern int git_attr_cache__init(git_repository *repo);
Packit Service 20376f
Packit Service 20376f
/* get file - loading and reload as needed */
Packit Service 20376f
extern int git_attr_cache__get(
Packit Service 20376f
	git_attr_file **file,
Packit Service 20376f
	git_repository *repo,
Packit Service 20376f
	git_attr_session *attr_session,
Packit Service 20376f
	git_attr_file_source source,
Packit Service 20376f
	const char *base,
Packit Service 20376f
	const char *filename,
Packit Service 20376f
	git_attr_file_parser parser);
Packit Service 20376f
Packit Service 20376f
extern bool git_attr_cache__is_cached(
Packit Service 20376f
	git_repository *repo,
Packit Service 20376f
	git_attr_file_source source,
Packit Service 20376f
	const char *path);
Packit Service 20376f
Packit Service 20376f
extern int git_attr_cache__alloc_file_entry(
Packit Service 20376f
	git_attr_file_entry **out,
Packit Service 20376f
	const char *base,
Packit Service 20376f
	const char *path,
Packit Service 20376f
	git_pool *pool);
Packit Service 20376f
Packit Service 20376f
extern int git_attr_cache__insert_macro(
Packit Service 20376f
	git_repository *repo, git_attr_rule *macro);
Packit Service 20376f
Packit Service 20376f
extern git_attr_rule *git_attr_cache__lookup_macro(
Packit Service 20376f
	git_repository *repo, const char *name);
Packit Service 20376f
Packit Service 20376f
#endif