Interface PoolNotificationSession

All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession

public interface PoolNotificationSession extends OsidSession

This session defines methods to receive notifications on adds/changes to Pool objects in this Distributor . This also includes existing pools that may appear or disappear due to changes in the Distributor hierarchy, 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 PoolLookupSession .

  • Method Details

    • getDistributorId

      Id getDistributorId()
      Gets the Distributor Id associated with this session.
      Returns:
      the Distributor Id associated with this session
      Compliance:
      mandatory - This method must be implemented.
    • getDistributor

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

      boolean canRegisterForPoolNotifications()
      Tests if this user can register for Pool 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.
    • useFederatedDistributorView

      void useFederatedDistributorView()
      Federates the view for methods in this session. A federated view will include pools in distributors which are children of this distributor in the distributor hierarchy.
      Compliance:
      mandatory - This method is must be implemented.
    • useIsolatedDistributorView

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

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

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

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

      void registerForNewPools() throws OperationFailedException, PermissionDeniedException
      Register for notifications of new pools. PoolReceiver.newPools() is invoked when a new Pool appears in this distributor.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForNewPoolsForBroker

      void registerForNewPoolsForBroker(Id brokerId) throws OperationFailedException, PermissionDeniedException
      Register for notifications of new pools for the given broker Id . PoolReceiver.newPools() is invoked when a new Pool is created.
      Parameters:
      brokerId - the Id of the broker to monitor
      Throws:
      NullArgumentException - brokerId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedPools

      void registerForChangedPools() throws OperationFailedException, PermissionDeniedException
      Registers for notification of updated pools. PoolReceiver.changedPools() is invoked when a pool in this distributor is changed.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedPoolsForBroker

      void registerForChangedPoolsForBroker(Id brokerId) throws OperationFailedException, PermissionDeniedException
      Register for notifications of updated pools for the given broker Id . PoolReceiver.changedPools() is invoked when a pool in this distributor is changed.
      Parameters:
      brokerId - the Id of the broker to monitor
      Throws:
      NullArgumentException - brokerId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedPool

      void registerForChangedPool(Id poolId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated pool. PoolReceiver.changedPools() is invoked when the specified pool in this distributor is changed.
      Parameters:
      poolId - the Id of the Pool to monitor
      Throws:
      NullArgumentException - poolId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedPools

      void registerForDeletedPools() throws OperationFailedException, PermissionDeniedException
      Registers for notification of deleted pools. PoolReceiver.deletedPools() is invoked when a pool is deleted or removed from this distributor.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedPoolsForBroker

      void registerForDeletedPoolsForBroker(Id brokerId) throws OperationFailedException, PermissionDeniedException
      Register for notifications of deleted pools for the given broker Id . PoolReceiver.deletedPools() is invoked when a pool in this distributor is removed or deleted.
      Parameters:
      brokerId - the Id of the broker to monitor
      Throws:
      NullArgumentException - brokerId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedPool

      void registerForDeletedPool(Id poolId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of a deleted pool. PoolReceiver.deletedPools() is invoked when the specified pool is deleted or removed from this distributor.
      Parameters:
      poolId - the Id of the Pool to monitor
      Throws:
      NullArgumentException - poolId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.