From 2c994adbd2d5778bb881bd792a57294f86e143b1 Mon Sep 17 00:00:00 2001 From: Paul Cristian Sarbu Date: Mon, 29 Aug 2022 19:01:36 +0200 Subject: Git: Wrap libgit2 raw pointers --- src/buildtool/file_system/git_utils.hpp | 60 +++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 src/buildtool/file_system/git_utils.hpp (limited to 'src/buildtool/file_system/git_utils.hpp') diff --git a/src/buildtool/file_system/git_utils.hpp b/src/buildtool/file_system/git_utils.hpp new file mode 100644 index 00000000..74f21500 --- /dev/null +++ b/src/buildtool/file_system/git_utils.hpp @@ -0,0 +1,60 @@ +// Copyright 2022 Huawei Cloud Computing Technology Co., Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef INCLUDED_SRC_BUILDTOOL_FILE_SYSTEM_GIT_UTILS_HPP +#define INCLUDED_SRC_BUILDTOOL_FILE_SYSTEM_GIT_UTILS_HPP + +#include "gsl-lite/gsl-lite.hpp" + +extern "C" { +struct git_odb; +struct git_repository; +struct git_tree; +struct git_treebuilder; +struct git_index; +struct git_strarray; +struct git_signature; +struct git_object; +struct git_remote; +struct git_commit; +struct git_tree_entry; +} + +void repo_closer(gsl::owner repo); + +void odb_closer(gsl::owner odb); + +void tree_closer(gsl::owner tree); + +void treebuilder_closer(gsl::owner builder); + +void index_closer(gsl::owner index); + +// to be used for strarrays allocated by libgit2 +void strarray_closer(gsl::owner strarray); + +// to be used for strarrays allocated manually +void strarray_deleter(gsl::owner strarray); + +void signature_closer(gsl::owner signature); + +void object_closer(gsl::owner object); + +void remote_closer(gsl::owner remote); + +void commit_closer(gsl::owner commit); + +void tree_entry_closer(gsl::owner tree_entry); + +#endif // INCLUDED_SRC_BUILDTOOL_FILE_SYSTEM_GIT_UTILS_HPP -- cgit v1.2.3