Interface DispatchNotificationSession

All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession

public interface DispatchNotificationSession extends OsidSession

This session defines methods to receive notifications on adds/changes to Dispatches . 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 Dispatch object itself. Adding and removing subscriptions result in notifications available from the notification session for subscriptions.

  • Method Details

    • getPublisherId

      Id getPublisherId()
      Gets the Publisher Id associated with this session.
      Returns:
      the Publisher Id associated with this session
      Compliance:
      mandatory - This method must be implemented.
    • getPublisher

      Gets the Publisher associated with this session.
      Returns:
      the publisher
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • canRegisterForDispatchNotifications

      boolean canRegisterForDispatchNotifications()
      Tests if this user can register for Dispatch 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.
    • useFederatedPublisherView

      void useFederatedPublisherView()
      Federates the view for methods in this session. A federated view will include dispatches in publishers which are children of this publisher in the publisher hierarchy.
      Compliance:
      mandatory - This method is must be implemented.
    • useIsolatedPublisherView

      void useIsolatedPublisherView()
      Isolates the view for methods in this session. An isolated view restricts retrievals to this publisher only.
      Compliance:
      mandatory - This method is must be implemented.
    • reliableDispatchNotifications

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

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

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

      void registerForNewDispatches() throws OperationFailedException, PermissionDeniedException
      Register for notifications of new dispatches. DispatchReceiver.newDispatches() is invoked when a new Dispatch is created.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedDispatches

      void registerForChangedDispatches() throws OperationFailedException, PermissionDeniedException
      Registers for notification of updated dispatches. DispatchReceiver.changedDispatches() is invoked when a dispatch is changed.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedDispatch

      void registerForChangedDispatch(Id dispatchId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated dispatch. DispatchReceiver.changedDispatches() is invoked when the specified dispatch is changed.
      Parameters:
      dispatchId - the Id of the Dispatch to monitor
      Throws:
      NullArgumentException - dispatchId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedDispatches

      void registerForDeletedDispatches() throws OperationFailedException, PermissionDeniedException
      Registers for notification of deleted dispatches. DispatchReceiver.deletedDispatches() is invoked when a dispatch is deleted.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedDispatch

      void registerForDeletedDispatch(Id dispatchId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of a deleted dispatch. DispatchReceiver.deletedDispatches() is invoked when the specified dispatch is deleted.
      Parameters:
      dispatchId - the Id of the Dispatch to monitor
      Throws:
      NullArgumentException - dispatchId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.