Callback Handlers

To receive callbacks, you must register a CallBackHandler with the generated database class, the entity class, or both. You can create a handler by extending the DefaultCallbackHandler class, or by implementing the interface, ICallbackHandler.

In your handler, override the particular callback you want to use (for example, OnReplaySuccess). The callback is executed in the thread that is performing the action (for example, replay). When you receive the callback, the particular activity is already complete.

Callbacks in the CallbackHandler interface include:

namespace Sybase.Persistence
{
  // Summary:
  //     A default implementation for the Sybase.Persistence.ICallbackHandler interface.
  //      Application programmers should implement their own CallbackHandler.
  //
  // Remarks:
  //     This class contains dummy implements, application programmer should not use
  //     this default implementation.
  public class DefaultCallbackHandler : ICallbackHandler
  {
    public DefaultCallbackHandler();

    public virtual void BeforeImport(object o);
    //
    // Summary:
    //     This method will be invoked when device connection status is changing When
    //     there is connection error, there is a non-zero error code and the errorMessage
    //     will not be null
    //
    // Parameters:
    //   connStatus:
    //     Connection status
    //
    //   connType:
    //     Connection type
    //
    //   errorCode:
    //     Error code
    //
    //   errorMessage:
    //     Error message
    public virtual void OnConnectionStatusChange(int connStatus, int connType, int errorCode, string errorMessage);
    public virtual void OnImport(object o);
    public virtual void OnImportSuccess();
    public virtual void OnLoginFailure();
    public virtual void OnLoginSuccess();
    public virtual void OnMessageException(Exception ex);
    public virtual void OnRecoverFailure();
    public virtual void OnRecoverSuccess();
    public virtual void OnReplayFailure(object o);
    public virtual void OnReplaySuccess(object o);
    public virtual void OnResetSuccess();
    public virtual void OnResumeSubscriptionFailure();
    public virtual void OnResumeSubscriptionSuccess();
    public virtual void OnSearchFailure(object o);
    public virtual void OnSearchSuccess(object o);
    public virtual void OnStorageSpaceLow();
    public virtual void OnStorageSpaceRecovered();
    public virtual void OnSubscribeFailure();
    public virtual void OnSubscribeSuccess();
    public virtual void OnSubscriptionEnd();
    public virtual void OnSuspendSubscriptionFailure();
    public virtual void OnSuspendSubscriptionSuccess();
    public virtual SynchronizationAction OnSynchronize(GenericList<ISynchronizationGroup> groups, SynchronizationContext context);
    public virtual void OnSynchronizeFailure(GenericList<ISynchronizationGroup> groups);
    public virtual void OnSynchronizeSuccess(GenericList<ISynchronizationGroup> groups);
    public virtual void OnTransactionCommit();
    public virtual void OnTransactionRollback();
    public virtual void OnUnsubscribeFailure();
    public virtual void OnUnsubscribeSuccess();
  }
}

This code example shows how to create and register a handler to receive callbacks:

public class MyCallbackHandler : DefaultCallbackHandler
{
    // implementation
}

CallbackHandler handler = new MyCallbackHandler();
MyPackageDB.RegisterCallbackHandler(handler);
//or Customer.RegisterCallbackHandler(handler);