Interface LocationNotificationSession

All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession

public interface LocationNotificationSession extends OsidSession

This session defines methods to receive notifications on adds/changes to Locations in this Map . This also includes existing locations that may appear or disappear due to changes in the Location 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 LocationLookupSession .

  • Method Details

    • getMapId

      Id getMapId()
      Gets the Map Id associated with this session.
      Returns:
      the Map Id associated with this session
      Compliance:
      mandatory - This method must be implemented.
    • getMap

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

      boolean canRegisterForLocationNotifications()
      Tests if this user can register for Location 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.
    • useFederatedMapView

      void useFederatedMapView()
      Federates the view for methods in this session. A federated view will include locations in maps which are children of this map in the map hierarchy.
      Compliance:
      mandatory - This method is must be implemented.
    • useIsolatedMapView

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

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

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

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

      void registerForNewLocations() throws OperationFailedException, PermissionDeniedException
      Register for notifications of new locations. LocationReceiver.newLocations() is invoked when a new Location appears in this map.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedLocations

      void registerForChangedLocations() throws OperationFailedException, PermissionDeniedException
      Registers for notification of updated locations. LocationReceiver.changedLocations() is invoked when a location in this map is changed.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedLocation

      void registerForChangedLocation(Id locationId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated location. LocationReceiver.changedLocations() is invoked when the specified location in this map is changed.
      Parameters:
      locationId - the Id of the Location to monitor
      Throws:
      NullArgumentException - locationId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedLocations

      void registerForDeletedLocations() throws OperationFailedException, PermissionDeniedException
      Registers for notification of deleted locations. LocationReceiver.deletedLocations() is invoked when a location is deleted or removed from this map.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedLocation

      void registerForDeletedLocation(Id locationId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of a deleted location. LocationReceiver.deletedLocations() is invoked when the specified location is deleted or removed from this map.
      Parameters:
      locationId - the Id of the Location to monitor
      Throws:
      NullArgumentException - locationId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedLocationHierarchy

      void registerForChangedLocationHierarchy() throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated location hierarchy structure. LocationReceiver.changedChildOfLocations() is invoked when a node experiences a change in its children.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedLocationHierarchyForAncestors

      void registerForChangedLocationHierarchyForAncestors(Id locationId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated location hierarchy structure. LocationReceiver.changedChildOfLocations() is invoked when the specified node or any of its ancestors experiences a change in its children.
      Parameters:
      locationId - the Id of the Location node to monitor
      Throws:
      NullArgumentException - locationId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedLocationHierarchyForDescendants

      void registerForChangedLocationHierarchyForDescendants(Id locationId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated location hierarchy structure. LocationReceiver.changedChildOfLocations() is invoked when the specified node or any of its descendants experiences a change in its children.
      Parameters:
      locationId - the Id of the Location node to monitor
      Throws:
      NullArgumentException - locationId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.