Interface RealmNotificationSession

All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession

public interface RealmNotificationSession extends OsidSession

This session defines methods to receive notifications on adds/changes to Realm objects. This session is intended for consumers needing to synchronize their state with this service without the use of polling. Notifications are cancelled when this session is closed.

Notifications are triggered with changes to the Realm object itself. Adding and removing persons result in notifications available from the notification session for persons.

  • Method Details

    • canRegisterForRealmNotifications

      boolean canRegisterForRealmNotifications()
      Tests if this user can register for Realm notifications. A return of true does not guarantee successful authorization. A return of false indicates that it is known all methods in this session will result in a PERMISSION_DENIED . This is intended as a hint to an application that may opt not to offer notification operations.
      Returns:
      false if notification methods are not authorized, true otherwise
      Compliance:
      mandatory - This method must be implemented.
    • reliableRealmNotifications

      void reliableRealmNotifications()
      Reliable notifications are desired. In reliable mode, notifications are to be acknowledged using acknowledgeRealmNotification() .
      Compliance:
      mandatory - This method is must be implemented.
    • unreliableRealmNotifications

      void unreliableRealmNotifications()
      Unreliable notifications are desired. In unreliable mode, notifications do not need to be acknowledged.
      Compliance:
      mandatory - This method is must be implemented.
    • acknowledgeRealmNotification

      void acknowledgeRealmNotification(Id notificationId) throws OperationFailedException, PermissionDeniedException
      Acknowledge a realm notification.
      Parameters:
      notificationId - the Id of the notification
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForNewRealms

      void registerForNewRealms() throws OperationFailedException, PermissionDeniedException
      Register for notifications of new realms. RealmReceiver.newRealm() is invoked when a new Realm is created.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedRealms

      void registerForChangedRealms() throws OperationFailedException, PermissionDeniedException
      Registers for notification of updated realms. RealmReceiver.changedRealms() is invoked when a realm is changed.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedRealm

      void registerForChangedRealm(Id realmId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated realm. RealmReceiver.changedRealms() is invoked when the specified realm is changed.
      Parameters:
      realmId - the Id of the Realm to monitor
      Throws:
      NullArgumentException - realmId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedRealms

      void registerForDeletedRealms() throws OperationFailedException, PermissionDeniedException
      Registers for notification of deleted realms. RealmReceiver.deletedRealms() is invoked when a realm is deleted.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedRealm

      void registerForDeletedRealm(Id realmId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of a deleted realm. RealmReceiver.deletedRealms() is invoked when the specified realm is deleted.
      Parameters:
      realmId - the Id of the Realm to monitor
      Throws:
      NullArgumentException - realmId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedRealmHierarchy

      void registerForChangedRealmHierarchy() throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated realm hierarchy structure. RealmReceiver.changedChildOfRealms() is invoked when the specified node or any of its descendants experiences a change in its children.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedRealmHierarchyForAncestors

      void registerForChangedRealmHierarchyForAncestors(Id realmId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated realm hierarchy structure. RealmReceiver.changedChildOfRealms() is invoked when the specified node or any of its descendants experiences a change in its children.
      Parameters:
      realmId - the Id of the Realm node to monitor
      Throws:
      NullArgumentException - realmId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedRealmHierarchyForDescendants

      void registerForChangedRealmHierarchyForDescendants(Id realmId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated realm hierarchy structure. RealmReceiver.changedChildOfRealms() is invoked when the specified node or any of its descendants experiences a change in its children.
      Parameters:
      realmId - the Id of the Realm node to monitor
      Throws:
      NullArgumentException - realmId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.