Interface StateNotificationSession

All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession

public interface StateNotificationSession extends OsidSession

This session defines methods to receive notifications on adds/changes to State objects in this Process . This also includes existing states that may appear or disappear due to changes in the Process 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 StateLookupSession .

  • Method Details

    • getProcessId

      Id getProcessId()
      Gets the Process Id associated with this session.
      Returns:
      the Process Id associated with this session
      Compliance:
      mandatory - This method must be implemented.
    • getProcess

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

      boolean canRegisterForStateNotifications()
      Tests if this user can register for State 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.
    • useFederatedProcessView

      void useFederatedProcessView()
      Federates the view for methods in this session. A federated view will include states in processes which are children of this process in the process hierarchy.
      Compliance:
      mandatory - This method is must be implemented.
    • useIsolatedProcessView

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

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

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

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

      void registerForNewStates() throws OperationFailedException, PermissionDeniedException
      Register for notifications of new states. StateReceiver.newStates() is invoked when a new State is appears in this process.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedStates

      void registerForChangedStates() throws OperationFailedException, PermissionDeniedException
      Registers for notification of updated states. StateReceiver.changedStates() is invoked when a state in this process is changed.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedState

      void registerForChangedState(Id stateId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated state. StateReceiver.changedStates() is invoked when the specified state in this process is changed.
      Parameters:
      stateId - the Id of the State to monitor
      Throws:
      NullArgumentException - stateId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedStates

      void registerForDeletedStates() throws OperationFailedException, PermissionDeniedException
      Registers for notification of deleted states. StateReceiver.deletedStates() is invoked when a state is deleted or removed from this process.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedState

      void registerForDeletedState(Id stateId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of a deleted state. StateReceiver.deletedStates() is invoked when the specified state is deleted or removed from this process.
      Parameters:
      stateId - the Id of the State to monitor
      Throws:
      NullArgumentException - stateId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.