[conduit/syncml: 98/244] Implement get/set anchor callbacks



commit 231b7150fd6b65ed462480105d5adebb897d8745
Author: John Carr <john carr unrouted co uk>
Date:   Sun Apr 26 07:14:14 2009 -0700

    Implement get/set anchor callbacks
---
 conduit/modules/SyncmlModule/SyncmlModule.py |   15 +++++++++++++++
 test/python-tests/syncml-server.sh           |    6 ++++--
 2 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/conduit/modules/SyncmlModule/SyncmlModule.py b/conduit/modules/SyncmlModule/SyncmlModule.py
index c28d42f..d16cc6f 100644
--- a/conduit/modules/SyncmlModule/SyncmlModule.py
+++ b/conduit/modules/SyncmlModule/SyncmlModule.py
@@ -137,6 +137,16 @@ class SyncmlDataProvider(DataProvider.TwoWay):
         self.mapping[userdata] = newuid
         return 1
 
+    def handle_get_anchor(self, sync_object, name, userdata, err):
+        anchor = self.anchor[name] if name in self.anchor else None
+        log.debug("get_anchor('%s') returns %s" % (name, anchor or "None"))
+        return anchor
+
+    def handle_set_anchor(self, sync_object, name, value, userdata, err):
+        log.debug("set_anchor('%s', '%s')" % (name, value))
+        self.anchor[name] = value
+        return 1
+
     def _syncml_sendall(self):
         err = pysyncml.Error()
         for t, LUID, uid, blob in self._queue:
@@ -159,6 +169,8 @@ class SyncmlDataProvider(DataProvider.TwoWay):
         self.syncobj.register_change_callback(self._handle_change, None)
         self.syncobj.register_handle_remote_devinf_callback(self._handle_devinf, None)
         self.syncobj.register_change_status_callback(self._handle_change_status)
+        self.syncobj.register_set_anchor_callback(self._handle_set_anchor)
+        self.syncobj.register_get_anchor_callback(self._handle_get_anchor)
 
         if not self.syncobj.init(pysyncml.byref(err)):
             log.error("Unable to prepare synchronisation")
@@ -174,6 +186,7 @@ class SyncmlDataProvider(DataProvider.TwoWay):
         DataProvider.TwoWay.__init__(self)
         self.address = address
 
+        self.anchor = {}
         self.mapping = {}
         self.slowsync = True
 
@@ -181,6 +194,8 @@ class SyncmlDataProvider(DataProvider.TwoWay):
         self._handle_change = pysyncml.ChangeCallback(self.handle_change)
         self._handle_devinf = pysyncml.HandleRemoteDevInfCallback(self.handle_devinf)
         self._handle_change_status = pysyncml.ChangeStatusCallback(self.handle_change_status)
+        self._handle_get_anchor = pysyncml.GetAnchorCallback(self.handle_get_anchor)
+        self._handle_set_anchor = pysyncml.SetAnchorCallback(self.handle_set_anchor)
 
         self._refresh_lock = threading.Event()
         self._put_lock = threading.Event()
diff --git a/test/python-tests/syncml-server.sh b/test/python-tests/syncml-server.sh
index a9bea81..b90de6d 100755
--- a/test/python-tests/syncml-server.sh
+++ b/test/python-tests/syncml-server.sh
@@ -1,4 +1,6 @@
 #! /bin/sh
 killall syncml-ds-tool
-syncml-ds-tool --http-server 1234 --sync $1 $2 $3
-syncml-ds-tool --http-server 1234 --sync $1 $2 $3
+while [ 1 -ne 0 ]
+do
+  syncml-ds-tool --username test --password test --http-server 1234 --sync $1 $2 $3
+done



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]