Interface RoomNotificationSession

All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession

public interface RoomNotificationSession extends OsidSession

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

  • Method Details

    • getCampusId

      Id getCampusId()
      Gets the Campus Id associated with this session.
      Returns:
      the Campus Id associated with this session
      Compliance:
      mandatory - This method must be implemented.
    • getCampus

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

      boolean canRegisterForRoomNotifications()
      Tests if this user can register for Room 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.
    • useFederatedCampusView

      void useFederatedCampusView()
      Federates the view for methods in this session. A federated view will include entries in campuses which are children of this campus in the campus hierarchy.
      Compliance:
      mandatory - This method is must be implemented.
    • useIsolatedCampusView

      void useIsolatedCampusView()
      Isolates the view for methods in this session. An isolated view restricts retrievals to this campus only.
      Compliance:
      mandatory - This method is must be implemented.
    • reliableRoomNotifications

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

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

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

      void registerForNewRooms() throws OperationFailedException, PermissionDeniedException
      Register for notifications of new rooms. RoomReceiver.newRooms() is invoked when a new Room is created.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForNewRoomsByGenusType

      void registerForNewRoomsByGenusType(Type roomGenusType) throws OperationFailedException, PermissionDeniedException
      Register for notifications of new rooms of the given genus type. RoomReceiver.newRooms() is invoked when a new Room is created.
      Parameters:
      roomGenusType - a room genus type
      Throws:
      NullArgumentException - roomGenusType is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForNewRoomsForBuilding

      void registerForNewRoomsForBuilding(Id buildingId) throws OperationFailedException, PermissionDeniedException
      Register for notifications of new rooms for the given reference Id . RoomReceiver.newRooms() is invoked when a new Room is created.
      Parameters:
      buildingId - the Id of the building to monitor
      Throws:
      NullArgumentException - buildingId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedRooms

      void registerForChangedRooms() throws OperationFailedException, PermissionDeniedException
      Registers for notification of updated rooms. RoomReceiver.changedRooms() is invoked when a room is changed.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedRoomsByGenusType

      void registerForChangedRoomsByGenusType(Type roomGenusType) throws OperationFailedException, PermissionDeniedException
      Registers for notification of updated rooms of the given genus type. RoomReceiver.changedRooms() is invoked when a room is changed.
      Parameters:
      roomGenusType - a room genus type
      Throws:
      NullArgumentException - roomGenusType is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedRoomsForBuilding

      void registerForChangedRoomsForBuilding(Id buildingId) throws OperationFailedException, PermissionDeniedException
      Register for notifications of chagned rooms for the given building Id . RoomReceiver.changedRooms() is invoked when a Room for the building is changed.
      Parameters:
      buildingId - the Id of the building to monitor
      Throws:
      NullArgumentException - buildingId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForChangedRoom

      void registerForChangedRoom(Id roomId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of an updated room. RoomReceiver.changedRooms() is invoked when the specified room is changed.
      Parameters:
      roomId - the Id of the Room to monitor
      Throws:
      NullArgumentException - roomId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedRooms

      void registerForDeletedRooms() throws OperationFailedException, PermissionDeniedException
      Registers for notification of deleted rooms. RoomReceiver.deletedRoom() is invoked when a room is deleted.
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedRoomsByGenusType

      void registerForDeletedRoomsByGenusType(Type roomGenusType) throws OperationFailedException, PermissionDeniedException
      Registers for notification of deleted rooms of the given genus type. RoomReceiver.deletedRooms() is invoked when a room is deleted.
      Parameters:
      roomGenusType - a room genus type
      Throws:
      NullArgumentException - roomGenusType is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedRoomsForBuilding

      void registerForDeletedRoomsForBuilding(Id buildingId) throws OperationFailedException, PermissionDeniedException
      Register for notifications of changed rooms for the given building Id . RoomReceiver.deletedRooms() is invoked when a Room for the building is deleted.
      Parameters:
      buildingId - the Id of the building to monitor
      Throws:
      NullArgumentException - buildingId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • registerForDeletedRoom

      void registerForDeletedRoom(Id roomId) throws OperationFailedException, PermissionDeniedException
      Registers for notification of a deleted room. RoomReceiver.deletedRooms() is invoked when the specified room is deleted.
      Parameters:
      roomId - the Id of the Room to monitor
      Throws:
      NullArgumentException - roomId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.