Skip to main content

Behaviour of RecordingManager.getEntries() for deleted recordings

1 reply [Last post]
amalgm
Offline
Joined: 2011-01-19
Points: 0

In scenarios such as Application calling RecordedService.delete() and the recoding expired. The recording state transitions to DELETED_STATE.

As per OCAP DVR spec section 6.2.1.1.4 b, all the recordings including ones in DELETED_STATE needs to be maintained unless application explicitly deletes the recordings.

Why does the behaviour of RecordedService.delete() and RecordingRequest.delete() behave differently ?

Also will the list of recordings returned by ParentNodeImpl.getKnownChildren() and RecordingManager.getEntries() include the recordings in DELETED_STATE ?

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
cpratt
Offline
Joined: 2008-12-18
Points: 0

Fundamentally, a RecordedService is generated and owned by a RecordingRequest. i.e. you can't have a RecordedService without a RecordingRequest since it's the process of the stack fulfilling a RecordingRequest by which a RecordedService is generated. In a sense, a RecordingRequest is the parent of a RecordedService (or RecordedServices, in the case of a SegmentedRecordedService).

And of course you can have a RecordingRequest without a RecordedService. Typically this is the case when a RecordingRequest is in a PENDING_WITH_CONFLICT or a PENDING_WITHOuT_CONFLICT state when the RR's start time is in the future. However, this is also the case if the RecordingRequest's RecordedService(s) are delete()-ed. A RecordingRequest that has its RS(s) deleted (e.g. a RR in the COMPLETED state) will be transitioned to the DELETED state - signifying that it once had a RS but it was deleted and no longer has a RS.

RRs in the DELETED state will still be referenced by parent RRs and NavigationManager.

By contrast, a RecordingRequest that is delete()-ed has its RS's deleted (if any - since RSs can't live without RRs) and, additionally, is removed from NavigationManager (the RI calls these "DESTROYED"). Any operations on outstanding references to these RRs will generally result in an IllegalStateException.