File tree Expand file tree Collapse file tree 7 files changed +40
-32
lines changed Expand file tree Collapse file tree 7 files changed +40
-32
lines changed Original file line number Diff line number Diff line change @@ -57,6 +57,7 @@ set(GIT2CPP_SRC
57
57
${GIT2CPP_SOURCE_DIR} /wrapper/repository_wrapper.hpp
58
58
${GIT2CPP_SOURCE_DIR} /wrapper/status_wrapper.cpp
59
59
${GIT2CPP_SOURCE_DIR} /wrapper/status_wrapper.hpp
60
+ ${GIT2CPP_SOURCE_DIR} /wrapper/wrapper_base.hpp
60
61
${GIT2CPP_SOURCE_DIR} /main.cpp
61
62
${GIT2CPP_SOURCE_DIR} /version.hpp
62
63
)
Original file line number Diff line number Diff line change @@ -19,38 +19,6 @@ class noncopyable_nonmovable
19
19
~noncopyable_nonmovable () = default ;
20
20
};
21
21
22
- template <class T >
23
- class wrapper_base
24
- {
25
- public:
26
- using resource_type = T;
27
-
28
- wrapper_base (const wrapper_base&) = delete ;
29
- wrapper_base& operator =(const wrapper_base&) = delete ;
30
-
31
- wrapper_base (wrapper_base&& rhs)
32
- : p_resource(rhs.p_resource)
33
- {
34
- rhs.p_resource = nullptr ;
35
- }
36
- wrapper_base& operator =(wrapper_base&& rhs)
37
- {
38
- std::swap (p_resource, rhs.p_resource );
39
- return *this ;
40
- }
41
-
42
- operator resource_type*() const noexcept
43
- {
44
- return p_resource;
45
- }
46
-
47
- protected:
48
- // Allocation and deletion of p_resource must be handled by inheriting class.
49
- wrapper_base () = default ;
50
- ~wrapper_base () = default ;
51
- resource_type* p_resource = nullptr ;
52
- };
53
-
54
22
class libgit2_object : private noncopyable_nonmovable
55
23
{
56
24
public:
Original file line number Diff line number Diff line change 6
6
#include < git2.h>
7
7
8
8
#include " ../utils/common.hpp"
9
+ #include " ../wrapper/wrapper_base.hpp"
9
10
10
11
class repository_wrapper ;
11
12
Original file line number Diff line number Diff line change 5
5
#include < git2.h>
6
6
7
7
#include " ../wrapper/repository_wrapper.hpp"
8
+ #include " ../wrapper/wrapper_base.hpp"
8
9
9
10
class reference_wrapper : public wrapper_base <git_reference>
10
11
{
Original file line number Diff line number Diff line change 6
6
7
7
#include " ../utils/common.hpp"
8
8
#include " ../wrapper/index_wrapper.hpp"
9
+ #include " ../wrapper/wrapper_base.hpp"
9
10
10
11
class repository_wrapper : public wrapper_base <git_repository>
11
12
{
Original file line number Diff line number Diff line change 6
6
#include < git2.h>
7
7
8
8
#include " ../wrapper/repository_wrapper.hpp"
9
+ #include " ../wrapper/wrapper_base.hpp"
9
10
10
11
class status_list_wrapper : public wrapper_base <git_status_list>
11
12
{
Original file line number Diff line number Diff line change
1
+ #pragma once
2
+
3
+
4
+ template <class T >
5
+ class wrapper_base
6
+ {
7
+ public:
8
+ using resource_type = T;
9
+
10
+ wrapper_base (const wrapper_base&) = delete ;
11
+ wrapper_base& operator =(const wrapper_base&) = delete ;
12
+
13
+ wrapper_base (wrapper_base&& rhs)
14
+ : p_resource(rhs.p_resource)
15
+ {
16
+ rhs.p_resource = nullptr ;
17
+ }
18
+ wrapper_base& operator =(wrapper_base&& rhs)
19
+ {
20
+ std::swap (p_resource, rhs.p_resource );
21
+ return *this ;
22
+ }
23
+
24
+ operator resource_type*() const noexcept
25
+ {
26
+ return p_resource;
27
+ }
28
+
29
+ protected:
30
+ // Allocation and deletion of p_resource must be handled by inheriting class.
31
+ wrapper_base () = default ;
32
+ ~wrapper_base () = default ;
33
+
34
+ resource_type* p_resource = nullptr ;
35
+ };
You can’t perform that action at this time.
0 commit comments