3.1.5.3 Server Object Dependencies
The client MUST use the RopRelease ROP (section 2.2.15.3) to release an object. The client MUST release an owned object before releasing the object's owner. For example, a Stream object that is owned by a folder is released before the owning folder is released. A summary of object owners and the objects that they can own is provided below.
An attachment owns the following:
A Stream object that is opened on properties of the attachment
An Embedded Message object that is created from the attachment
A FastTransfer download context that is opened by a RopFastTransferSourceCopyTo ROP (section 2.2.12.7) or a RopFastTransferSourceCopyProperties ROP (section 2.2.12.8)
A FastTransfer upload context that is opened by a RopFastTransferDestinationConfigure ROP (section 2.2.12.1)
A message owns the following:
An attachment of the message
A Stream object that is opened on properties of the message
An attachments table that is opened on the message
A FastTransfer download context that is opened by a RopFastTransferSourceCopyTo ROP or a RopFastTransferSourceCopyProperties ROP
A FastTransfer upload context that is opened by a RopFastTransferDestinationConfigure ROP (section 2.2.12.1)
A folder owns the following:
A Stream object that is opened on properties of the folder
A rules table that is opened on the folder
A permissions table that is opened on the folder
A fast-transfer download context that is opened by a RopFastTransferSourceCopyTo ROP or RopFastTransferSourceCopyProperties ROP
A FastTransfer download context that is opened by a RopFastTransferSourceCopyMessages ROP (section 2.2.12.6) or a RopFastTransferSourceCopyFolder ROP (section 2.2.12.5)
A synchronization download context that is opened by a RopSynchronizationConfigure ROP (section 2.2.13.1)
A FastTransfer upload context that is opened by a RopFastTransferDestinationConfigure ROP
A synchronization upload context that is opened by a RopSynchronizationOpenCollector ROP (section 2.2.13.7)