Interface ChainNotificationSession

All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession

public interface ChainNotificationSession extends OsidSession

This session defines methods to receive notifications on adds/changes to Chain objects in this dDstributor . 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.

The two views defined in this session correspond to the views in the ChainLookupSession .

  • Method Details

    • getAntimatroidId

      Id getAntimatroidId()
      Gets the Antimatroid Id associated with this session.
      Returns:
      the Antimatroid Id associated with this session
      Compliance:
      mandatory - This method must be implemented.
    • getAntimatroid

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

      boolean canRegisterForChainNotifications()
      Tests if this user can register for Chain 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.
    • useFederatedAntimatroidView

      void useFederatedAntimatroidView()
      Federates the view for methods in this session. A federated view will include chains in antimatroids which are children of this antimatroid in the antimatroid hierarchy.
      Compliance:
      mandatory - This method is must be implemented.
    • useIsolatedAntimatroidView

      void useIsolatedAntimatroidView()
      Isolates the view for methods in this session. An isolated view restricts notifications to this antimatroid only.
      Compliance:
      mandatory - This method is must be implemented.
    • reliableChainNotifications

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

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

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

      void registerForNewChains() throws OperationFailedException, PermissionDeniedException
      Register for notifications of new chains. ChainReceiver.newChains() is invoked when a new Chain appears in this antimatroid.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedChains

      void registerForChangedChains() throws OperationFailedException, PermissionDeniedException
      Registers for notification of updated chains. ChainReceiver.changedChains() is invoked when a chain in this antimatroid is changed.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedChain

      void registerForChangedChain(Id chainId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated chain. ChainReceiver.changedChains() is invoked when the specified chain in this antimatroid is changed.
      Parameters:
      chainId - the Id of the Chain to monitor
      Throws:
      NullArgumentException - chainId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedChains

      void registerForDeletedChains() throws OperationFailedException, PermissionDeniedException
      Registers for notification of deleted chains. ChainReceiver.deletedChains() is invoked when a chain is deleted or removed from this antimatroid.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedChain

      void registerForDeletedChain(Id chainId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of a deleted chain. ChainReceiver.deletedChains() is invoked when the specified chain is deleted or removed from this antimatroid.
      Parameters:
      chainId - the Id of the Chain to monitor
      Throws:
      NullArgumentException - chainId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.