mirror of
https://github.com/rwinkhart/cmutton.git
synced 2026-08-27 20:36:31 -04:00
Port synccommon.GetAllEntryData (partial implementation)
This commit is contained in:
@@ -116,6 +116,6 @@ int main() {
|
|||||||
- [X] ~~ShearAgeFileLocal(vanityPath string) error~~ (not for use outside of libmutton)
|
- [X] ~~ShearAgeFileLocal(vanityPath string) error~~ (not for use outside of libmutton)
|
||||||
- [X] ~~ShearLocal(vanityPath, clientDeviceID string, onlyShearAgeFile bool) (string, bool, error)~~ (not for use outside of libmutton)
|
- [X] ~~ShearLocal(vanityPath, clientDeviceID string, onlyShearAgeFile bool) (string, bool, error)~~ (not for use outside of libmutton)
|
||||||
- [X] WalkEntryDir() ([]string, []string, error)
|
- [X] WalkEntryDir() ([]string, []string, error)
|
||||||
- [X] ~~GetAllEntryData() (EntryMapT, error)~~ (not easy to port to C; also not needed)
|
- [X] GetAllEntryData() (EntryMapT, error)
|
||||||
- [ ] syncserver
|
- [ ] syncserver
|
||||||
- [ ] GetRemoteDataFromServer(clientDeviceID string)
|
- [ ] GetRemoteDataFromServer(clientDeviceID string)
|
||||||
|
|||||||
@@ -4,6 +4,9 @@ package main
|
|||||||
// #include "types.h"
|
// #include "types.h"
|
||||||
import "C"
|
import "C"
|
||||||
import (
|
import (
|
||||||
|
"unsafe"
|
||||||
|
|
||||||
|
"github.com/rwinkhart/libmutton/age"
|
||||||
"github.com/rwinkhart/libmutton/synccommon"
|
"github.com/rwinkhart/libmutton/synccommon"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -26,3 +29,29 @@ func WalkEntryDir() (*C.char, *C.PascalString, C.int, *C.PascalString, C.int) {
|
|||||||
}
|
}
|
||||||
return nil, getCPascalStringArrayFromStringSlice(files), C.int(len(files)), getCPascalStringArrayFromStringSlice(dirs), C.int(len(dirs))
|
return nil, getCPascalStringArrayFromStringSlice(files), C.int(len(files)), getCPascalStringArrayFromStringSlice(dirs), C.int(len(dirs))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetAllEntryData returns:
|
||||||
|
// r0: err
|
||||||
|
//
|
||||||
|
// r1: vanityPaths (pointer to C-allocated array)
|
||||||
|
//
|
||||||
|
// r2: vanityPaths length
|
||||||
|
//
|
||||||
|
// r3: translatedAges (pointer to C-allocated array)
|
||||||
|
//
|
||||||
|
// r4: translatedAges length
|
||||||
|
//
|
||||||
|
//export GetAllEntryData
|
||||||
|
func GetAllEntryData() (*C.char, *C.PascalString, C.int, *uint8, C.int) {
|
||||||
|
entryMap, err := synccommon.GetAllEntryData()
|
||||||
|
if err != nil {
|
||||||
|
return C.CString(err.Error()), nil, 0, nil, 0
|
||||||
|
}
|
||||||
|
var vanityPaths []string
|
||||||
|
var translatedAges []uint8
|
||||||
|
for k, v := range entryMap {
|
||||||
|
vanityPaths = append(vanityPaths, k)
|
||||||
|
translatedAges = append(translatedAges, age.TranslateAgeTimestamp(v.AgeTimestamp))
|
||||||
|
}
|
||||||
|
return nil, getCPascalStringArrayFromStringSlice(vanityPaths), C.int(len(vanityPaths)), (*uint8)(unsafe.Pointer(&translatedAges[0])), C.int(len(translatedAges))
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user