Class ICziWriterInfo#

Inheritance Relationships#

Derived Type#

Class Documentation#

class ICziWriterInfo#

The options for the CZI-writer.

Subclassed by libCZI::CCziWriterInfo

Public Functions

virtual const IDimBounds *GetDimBounds() const = 0#

Gets bounds for the subblocks we are going to add to the CZI. If this is a valid bounds, then the coordinates of each subblock added are checked against this bounds. In case of a violation, an LibCZIWriteException-exception is thrown.

Returns:

Null if the bounds is not specified, else the bounds for the subblock’s coordinates we want to add.

virtual const GUID &GetFileGuid() const = 0#

Gets file’s unique identifier. If we report GUID_NULL, then the file-writer will create a GUID on its own.

Returns:

The file’s unique identifier.

virtual bool TryGetMIndexMinMax(int *min, int *max) const = 0#

Attempts to get the minimum and the maximum (inclusive) for the m-index. If returning a valid interval (ie. if the return value is true), then the M-coordinate of each subblock added is checked against this. Furthermore, in this case we require that all subblocks have a valid M-index.

Parameters:
  • min[out] If non-null will receive the minimum M-index (inclusive).

  • max[out] If non-null will receive the maximum M-index (inclusive).

Returns:

True if it succeeds, false the is no bounds for the M-index.

virtual bool TryGetReservedSizeForAttachmentDirectory(size_t *size) const = 0#

Query whether to reserve space for the attachment-directory-segment at the start of the file. If returning true, the value returned for size has the following meaning: if it is >0, it is interpreted as the number of attachment-entries (ie. how many attachments can be put into the CZI). If it is 0 (and returning true), some default is used. If returning false, no space is reserved, and the attachment-directory is put at the end of the CZI. If the reserved space is not sufficient, then the attachment-directory-segment is put at the end of the CZI (and the reserved space is unused).

Parameters:

size[out] If returning true, then this gives the number of attachment-entries to reserve.

Returns:

True if space for the attachment-directory-segment is to be reserved, false otherwise.

virtual bool TryGetReservedSizeForSubBlockDirectory(size_t *size) const = 0#

Query whether to reserve space for the subblock-directory-segment at the start of the file. If returning true, the value returned for size has the following meaning: if it is >0, it is interpreted as the number of subblock-entries (ie. how many subblocks can be put into the CZI). If it is 0 (and returning true), some default is used. If returning false, no space is reserved, and the subblock-directory is put at the end of the CZI. If the reserved space is not sufficient, then the subblock-directory-segment is put at the end of the CZI (and the reserved space is unused).

Parameters:

size[out] If returning true, then this gives the number of subblock-entries to reserve.

Returns:

True if space for the subblock-directory-segment is to be reserved, false otherwise.

virtual bool TryGetReservedSizeForMetadataSegment(size_t *size) const = 0#

Query whether to reserve space for the metadata-segment at the start of the file. If returning true, the value returned for size has the following meaning: if it is >0, it is interpreted as the number of bytes available for the metadata-segment. If it is 0 (and returning true), some default is used. If returning false, no space is reserved, and the metadata-segment is put at the end of the CZI. If the reserved space is not sufficient, then the metadata-segment is put at the end of the CZI (and the reserved space is unused).

Parameters:

size[out] If returning true, then this gives the number of bytes to be reserved in the metadata-segment.

Returns:

True if space (in bytes) for the metadata is to be reserved, false otherwise.

virtual ~ICziWriterInfo() = default#