Isomet Modular Synthesiser (iMS) API  v1.4.2
iMS API
Public Member Functions | List of all members
iMS::IBulkTransfer Class Referenceabstract

Interface Specification class for sending large binary data objects to the iMS. More...

#include <include/IBulkTransfer.h>

Inheritance diagram for iMS::IBulkTransfer:
Inheritance graph
[legend]

Public Member Functions

virtual bool StartDownload ()=0
 Initiates a Bulk Transfer download. More...
 
virtual bool StartVerify ()=0
 Initiates a Bulk Transfer verify. More...
 
virtual int GetVerifyError ()=0
 Returns the address of the next verify error or -1 if none. More...
 

Detailed Description

Interface Specification class for sending large binary data objects to the iMS.

There are several instances in which large binary data must be transferred either from the host to the iMS or in the other direction, e.g. download of image data, compensation tables etc. This is known as Bulk Transfer and it implements a background process that supervises the splitting up of large data objects into individual messages compatible with the communications module, queuing them for transfer, verifying the success or failure of the transfer and reporting to the application software when the transfer is complete.

This interface class defines the methods which application software may use to control the Bulk Transfer process. It is inherited by API classes that require the use of a Bulk Transfer, and which implement the Bulk Transfer mechanism.

Completion and success or failure of a Bulk Transfer are indicated by the IEventHandler mechanism, which must be implemented by the derivative class

Author
Dave Cowan
Date
2015-11-03
Since
1.0

Member Function Documentation

virtual int iMS::IBulkTransfer::GetVerifyError ( )
pure virtual

Returns the address of the next verify error or -1 if none.

After the application has been notified of a failed verify, it can probe the BulkTransfer derived object to obtain the approximate address at which the BulkTransfer failed. The address is provided as a byte offset from the start of the BulkTransfer binary object.

Due to the way in which the BulkTransfer mechanism splits the transfer into individual messages, there will be one error recorded for each message that results in a verify fail. Therefore, the address will only be approximate, to the nearest message size boundary and if there are multiple byte fails within the scope of a single message, only one error will be recorded.

Calling this function repeatedly will result in returning the next recorded verify error. If there are no errors left, or the transfer was successful (i.e. there were no verify failures recorded) the function will return -1.

Returns
byte address of transfer failure or -1 if none.
Since
1.0

Implemented in iMS::CompensationTableDownload, iMS::ToneBufferDownload, and iMS::ImageDownload.

virtual bool iMS::IBulkTransfer::StartDownload ( )
pure virtual

Initiates a Bulk Transfer download.

If the user has subscribed to the relevant event notifications, the BulkTransfer derived object will issue a completion event at the end of the download process and will also warn the user anytime a download messaging error occurs.

Returns
Boolean indicating whether Download has started successfully
Since
1.0

Implemented in iMS::CompensationTableDownload, iMS::ToneBufferDownload, and iMS::ImageDownload.

virtual bool iMS::IBulkTransfer::StartVerify ( )
pure virtual

Initiates a Bulk Transfer verify.

If the user has subscribed to the relevant event notifications, the BulkTransfer derived object will raise an event to the application at the end of the verify process to indicate whether the verification was successful or not.

Returns
Boolean indicating whether Verify has started successfully
Since
1.0

Implemented in iMS::CompensationTableDownload, iMS::ToneBufferDownload, and iMS::ImageDownload.


The documentation for this class was generated from the following file: