Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
citizen-science
symbai
Commits
0bdf3cb9
Commit
0bdf3cb9
authored
May 15, 2014
by
Dave Griffiths
Browse files
fixes for sync
parent
5d06f28b
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
21 additions
and
13 deletions
+21
-13
android/assets/dbsync.scm
android/assets/dbsync.scm
+13
-9
android/assets/lib.scm
android/assets/lib.scm
+6
-0
eavdb/entity-get.ss
eavdb/entity-get.ss
+2
-3
eavdb/entity-sync.ss
eavdb/entity-sync.ss
+0
-1
No files found.
android/assets/dbsync.scm
View file @
0bdf3cb9
...
...
@@ -215,37 +215,40 @@
;; redundant second pass to syncronise files - independant of the
;; rest of the syncing system
(
define
(
sync-files
server-list
)
(
let
((
local-
files
(
dir-list
"/sdcard/symbai/files/"
)))
(
let
((
local-
list
(
dir-list
"/sdcard/symbai/files/"
)))
;; search for all local files in server list
(
append
(
foldl
(
lambda
(
file
r
)
;; send files not present
(
if
(
f
in
d
file
server-list
)
(
if
(
in
-list?
file
server-list
)
r
(
cons
(
http-upload
(
string-append
"upload-"
file
)
"http://192.168.2.1:8889/symbai?fn=upload"
(
string-append
"/sdcard/symbai/files/"
file
))
r
)))
'
()
local-list
)
;; search for all server files in local list
(
foldl
(
lambda
(
file
r
)
;; request files not present
(
if
(
f
in
d
file
local-list
)
(
if
(
in
-list?
file
local-list
)
r
(
cons
(
http-download
(
string-append
"download-"
file
)
(
string-append
"http://192.168.2.1:8889/files/"
file
)
(
string-append
"/sdcard/symbai/files/"
file
))
r
)))
'
()
server-list
))))
(
define
(
start-sync-files
)
(
http-request
(
string-append
"file-list"
)
(
string-append
url
"fn=file-list"
)
(
lambda
(
file-list
)
(
sync-files
file-list
))))
(
list
(
http-request
(
string-append
"file-list"
)
(
string-append
url
"fn=file-list"
)
(
lambda
(
file-list
)
(
sync-files
file-list
)))))
;; spit all dirty entities to server
(
define
(
spit
db
table
entities
)
...
...
@@ -353,13 +356,14 @@
version-data
))
(
define
(
mark-unlisted-entities-dirty!
db
table
version-data
)
(
msg
"mark-unlisted..."
)
;; load all local entities
(
let
((
ids
(
all-unique-ids
db
table
))
(
server-ids
(
map
car
version-data
)))
;; look for each one in data
(
for-each
(
lambda
(
id
)
(
when
(
(
not
(
f
in
d
id
server-ids
))
)
(
when
(
not
(
in
-list?
id
server-ids
))
(
msg
"can't find "
id
" in server data, marking dirty"
)
;; mark those not present as dirty for next spit cycle
(
update-entity-dirtify
db
table
id
)))
...
...
android/assets/lib.scm
View file @
0bdf3cb9
...
...
@@ -60,6 +60,12 @@
(
else
(
_
(
cdr
in
)
(
cons
(
cons
(
car
in
)
(
car
out
))
(
cdr
out
))
(
-
c
1
)))))
(
reverse
(
map
reverse
(
_
l
'
(())
n
))))
(
define
(
in-list?
n
l
)
(
cond
((
null?
l
)
#f
)
((
equal?
n
(
car
l
))
#t
)
(
else
(
in-list?
n
(
cdr
l
)))))
(
define
(
find
n
l
)
(
cond
((
null?
l
)
#f
)
...
...
eavdb/entity-get.ss
View file @
0bdf3cb9
...
...
@@ -71,10 +71,9 @@
(
cond
((
null?
vd
)
r
)
;; only return if dirty
((
zero?
(
cadr
vd
))
(
(
not
(
zero?
(
cadr
vd
))
)
(
cons
(
list
(
ktv-key
kt
)
(
ktv-type
kt
)
(
list-ref
vd
0
))
r
))
(
list
(
ktv-key
kt
)
(
ktv-type
kt
)
(
list-ref
vd
0
))
r
))
(
else
r
)))
db
table
entity-id
))
...
...
eavdb/entity-sync.ss
View file @
0bdf3cb9
...
...
@@ -77,7 +77,6 @@
(
list
;; build according to url ([table] entity-type unique-id dirty version)
(
cdr
(
vector->list
i
))
;; data entries (todo - only dirty values!)
(
get-entity-plain-for-sync
db
table
(
vector-ref
i
0
))))
(
cdr
de
)))))
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment