Add methods to access internal attributes in git_repo

Added several methods to access:

	- The ODB behind a repo
	- The SHA1 id behind a generic repo object
	- The type of a generic repo object

Signed-off-by: Vicent Marti <tanoku@gmail.com>
This commit is contained in:
Vicent Marti 2010-09-12 23:43:21 +03:00
parent 370ce56910
commit 46f8566a13
2 changed files with 41 additions and 0 deletions

View File

@ -49,6 +49,29 @@ GIT_EXTERN(git_repository *) git_repository_alloc(git_odb *odb);
*/
GIT_EXTERN(git_repository_object *) git_repository_lookup(git_repository *repo, const git_oid *id, git_otype type);
/**
* Get the object database behind a Git repository
*
* @param repo a repository object
* @return a pointer to the object db
*/
GIT_EXTERN(git_odb *) git_repository_database(git_repository *repo);
/**
* Get the id (SHA1) of a repository object
*
* @param obj the repository object
* @return the SHA1 id
*/
const git_oid *git_repository_object_id(git_repository_object *obj);
/**
* Get the object type of an object
*
* @param obj the repository object
* @return the object's type
*/
git_otype git_repository_object_type(git_repository_object *obj);
/**
* Free a reference to one of the objects in the repostory.

View File

@ -138,6 +138,24 @@ void git_repository_object_free(git_repository_object *object)
}
}
git_odb *git_repository_database(git_repository *repo)
{
assert(repo);
return repo->db;
}
const git_oid *git_repository_object_id(git_repository_object *obj)
{
assert(obj);
return &obj->id;
}
git_otype git_repository_object_type(git_repository_object *obj)
{
assert(obj);
return obj->dbo.type;
}
git_repository_object *git_repository_lookup(git_repository *repo, const git_oid *id, git_otype type)
{
static const size_t object_sizes[] = {