Create a Custom Callback Handler

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;
      }
   }
   
}