1 /*
2  * ggit-merge-options.h
3  * This file is part of libgit2-glib
4  *
5  * Copyright (C) 2013 - Ignacio Casal Quinteiro
6  *
7  * libgit2-glib is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2.1 of the License, or (at your option) any later version.
11  *
12  * libgit2-glib is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public License
18  * along with libgit2-glib. If not, see <http://www.gnu.org/licenses/>.
19  */
20 
21 
22 #ifndef __GGIT_MERGE_OPTIONS_H__
23 #define __GGIT_MERGE_OPTIONS_H__
24 
25 #include <glib-object.h>
26 #include <git2.h>
27 
28 #include "ggit-types.h"
29 
30 G_BEGIN_DECLS
31 
32 #define GGIT_TYPE_MERGE_OPTIONS       (ggit_merge_options_get_type ())
33 #define GGIT_MERGE_OPTIONS(obj)       ((GgitMergeOptions *)obj)
34 
35 GType                  ggit_merge_options_get_type                (void) G_GNUC_CONST;
36 
37 const git_merge_options *
38                       _ggit_merge_options_get_merge_options       (GgitMergeOptions         *merge_options);
39 
40 GgitMergeOptions      *ggit_merge_options_copy                    (GgitMergeOptions         *merge_options);
41 void                   ggit_merge_options_free                    (GgitMergeOptions         *merge_options);
42 
43 GgitMergeOptions      *ggit_merge_options_new                     (void);
44 
45 void                   ggit_merge_options_set_flags               (GgitMergeOptions         *merge_options,
46                                                                    GgitMergeFlags            flags);
47 
48 GgitMergeFlags         ggit_merge_options_get_flags               (GgitMergeOptions         *merge_options);
49 
50 void                   ggit_merge_options_set_rename_threshold    (GgitMergeOptions         *merge_options,
51                                                                    guint                     rename_threshold);
52 
53 guint                  ggit_merge_options_get_rename_threshold    (GgitMergeOptions         *merge_options);
54 
55 void                   ggit_merge_options_set_target_limit        (GgitMergeOptions         *merge_options,
56                                                                    guint                     target_limit);
57 
58 guint                  ggit_merge_options_get_target_limit        (GgitMergeOptions         *merge_options);
59 
60 void                   ggit_merge_options_set_similarity_metric   (GgitMergeOptions         *merge_options,
61                                                                    GgitDiffSimilarityMetric *metric);
62 
63 GgitDiffSimilarityMetric *
64                        ggit_merge_options_get_similarity_metric   (GgitMergeOptions         *merge_options);
65 
66 void                   ggit_merge_options_set_file_favor          (GgitMergeOptions         *merge_options,
67                                                                    GgitMergeFileFavor        file_favor);
68 
69 GgitMergeFileFavor     ggit_merge_options_get_file_favor          (GgitMergeOptions         *merge_options);
70 
71 void                   ggit_merge_options_set_file_flags          (GgitMergeOptions         *merge_options,
72                                                                    GgitMergeFileFlags        file_flags);
73 
74 GgitMergeFileFlags     ggit_merge_options_get_file_flags          (GgitMergeOptions         *merge_options);
75 
76 G_DEFINE_AUTOPTR_CLEANUP_FUNC (GgitMergeOptions, ggit_merge_options_free)
77 
78 G_END_DECLS
79 
80 #endif /* __GGIT_MERGE_OPTIONS_H__ */
81 
82 /* ex:set ts=8 noet: */
83