Interface InstallationPackageNotificationSession

All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession

public interface InstallationPackageNotificationSession extends OsidSession

This session defines methods to receive asynchronous notifications on adds/changes to InstallationPackage 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.

The views defined in this session correspond to the views in the InstallationPackageLookupSession.

  • Method Details

    • getDepotId

      Id getDepotId()
      Gets the Depot Id associated with this session.
      Returns:
      the Depot Id associated with this session
      Compliance:
      mandatory - This method must be implemented.
    • getDepot

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

      boolean canRegisterForInstallationPackageNotifications()
      Tests if this user can register for InstallationPackage 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.
    • useFederatedDepotView

      void useFederatedDepotView()
      Federates the view for methods in this session. A federated view will include notifications for packages in depots which are children of this depot in the depot hierarchy.
      Compliance:
      mandatory - This method is must be implemented.
    • useIsolatedDepotView

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

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

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

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

      void registerForNewInstallationPackages() throws OperationFailedException, PermissionDeniedException
      Register for notifications of new packages. InstallationPackageReceiver.newInstallationPackages() is invoked when a new package is created.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedInstallationPackages

      void registerForChangedInstallationPackages() throws OperationFailedException, PermissionDeniedException
      Registers for notification of updated packages. InstallationPackageReceiver.changedInstallationPackages() is invoked when a package is changed.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedInstallationPackage

      void registerForChangedInstallationPackage(Id installationPackageId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated package. InstallationPackageReceiver.changedInstallationPackages() is invoked when the specified package is changed.
      Parameters:
      installationPackageId - the Id of the InstallationPackage to monitor
      Throws:
      NullArgumentException - installationPackageId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedInstallationPackages

      void registerForDeletedInstallationPackages() throws OperationFailedException, PermissionDeniedException
      Registers for notification of deleted packages. InstallationPackageReceiver.deletedInstallationPackages() is invoked when a package is removed from this depot.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedInstallationPackage

      void registerForDeletedInstallationPackage(Id installationPackageId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of a deleted package. InstallationPackageReceiver.deletedInstallationPackages() is invoked when the specified package is removed from this depot.
      Parameters:
      installationPackageId - the Id of the InstallationPackage to monitor
      Throws:
      NullArgumentException - installationPackageId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.