/
virtualfileoverlay_gen.go
56 lines (46 loc) · 2.4 KB
/
virtualfileoverlay_gen.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package clang
// #include "./clang-c/BuildSystem.h"
// #include "go-clang.h"
import "C"
import "unsafe"
// VirtualFileOverlay object encapsulating information about overlaying virtual file/directories over the real file system.
type VirtualFileOverlay struct {
c C.CXVirtualFileOverlay
}
// NewVirtualFileOverlay create a CXVirtualFileOverlay object.
// Must be disposed with clang_VirtualFileOverlay_dispose().
//
// Parameter options is reserved, always pass 0.
func NewVirtualFileOverlay(options uint32) VirtualFileOverlay {
return VirtualFileOverlay{C.clang_VirtualFileOverlay_create(C.uint(options))}
}
// AddFileMapping map an absolute virtual file path to an absolute real one. The virtual path must be canonicalized (not contain "."/".."). Returns 0 for success, non-zero to indicate an error.
func (vfo VirtualFileOverlay) AddFileMapping(virtualPath string, realPath string) ErrorCode {
c_virtualPath := C.CString(virtualPath)
defer C.free(unsafe.Pointer(c_virtualPath))
c_realPath := C.CString(realPath)
defer C.free(unsafe.Pointer(c_realPath))
return ErrorCode(C.clang_VirtualFileOverlay_addFileMapping(vfo.c, c_virtualPath, c_realPath))
}
// SetCaseSensitivity set the case sensitivity for the CXVirtualFileOverlay object. The CXVirtualFileOverlay object is case-sensitive by default, this option can be used to override the default. Returns 0 for success, non-zero to indicate an error.
func (vfo VirtualFileOverlay) SetCaseSensitivity(caseSensitive int32) ErrorCode {
return ErrorCode(C.clang_VirtualFileOverlay_setCaseSensitivity(vfo.c, C.int(caseSensitive)))
}
// WriteToBuffer write out the CXVirtualFileOverlay object to a char buffer.
//
// Parameter options is reserved, always pass 0.
// Parameter out_buffer_ptr pointer to receive the buffer pointer, which should be
// disposed using clang_free().
// Parameter out_buffer_size pointer to receive the buffer size.
// Returns 0 for success, non-zero to indicate an error.
func (vfo VirtualFileOverlay) WriteToBuffer(options uint32) (string, uint32, ErrorCode) {
var outBufferPtr *C.char
defer C.free(unsafe.Pointer(outBufferPtr))
var outBufferSize C.uint
o := ErrorCode(C.clang_VirtualFileOverlay_writeToBuffer(vfo.c, C.uint(options), &outBufferPtr, &outBufferSize))
return C.GoString(outBufferPtr), uint32(outBufferSize), o
}
// Dispose dispose a CXVirtualFileOverlay object.
func (vfo VirtualFileOverlay) Dispose() {
C.clang_VirtualFileOverlay_dispose(vfo.c)
}