If an application requires a callback (for example, to allow the client framework to provide notification of synchronization results) create a custom callback handler.
import com.sybase.persistence.DefaultCallbackHandler;
...
public class Test
{
public static void main(String[] args)
{
SUP101DB.registerCallbackHandler(new MyCallbackHandler());
ObjectList sgs = new ObjectList(2);
sgs.add(SUP101DB.getSynchronizationGroup("sg1"));
sgs.add(SUP101DB.getSynchronizationGroup("sg2"));
SUP101DB.beginSynchronize(sgs, "my test synchronization context");
}
}
class MyCallbackHandler extends DefaultCallbackHandler
{
//The onSynchronize method overrides the
//onSynchronize method from DefaultCallbackHandler.
public int onSynchronize(ObjectList groups, SynchronizationContext context)
{
if ( context == null )
{
return SynchronizationAction.CANCEL;
}
if (!("my test synchronization context".equals((String)(context.getUserContext()))))
{
return super.onSynchronize(groups, context);
}
switch (context.getStatus())
{
case SynchronizationStatus.STARTING:
if (waitForMoreChanges())
{
return SynchronizationAction.CANCEL;
}
else
{
return SynchronizationAction.CONTINUE;
}
default:
return SynchronizationAction.CONTINUE;
}
}
}