Get File Primitive
A Get File conversation usually consists of a GetFileRequest message, a GetFileReply message, a Get File Exchange and a GetFileComplete message.
When a client wants to use the Get File functionality, it usually first uses the IdentifyPillarsForGetFile Primitive to establish which pillar (or pillar queue) to direct the GetFile to.
The GetFileRequest message is sent from the client to a specified pillar queue on the messaging bus. The GetFileReply message is from pillar to specified client queue. The Get File Exchange is from pillar to a 'Data Token' specified in the GetFileRequest message. The Get File Conversation may also include a GetFileComplete message from pillar to client queue. Both the GetFileReply and GetFileComplete messages can be negative. Neither answer messages are required but they are nice to have.
The messages are defined in BitRepositoryMessages.xsd and the format of the messages are defined in BitRepositoryElements.xsd .
See also Message exchange protocol
GetFileRequest
The request is directed to one pillar and contains one file ID (again may be extended to more file IDs; list, pattern or address) such that the pillar know what data is requested. The request contains one Data Token where the requested data is to be uploaded to (may be extended to match more file IDs).
The request also contains a 'replyTo', which is the ID of the queue where any reply can be send to.
GetFileResponse and GetFileComplete
The reply messages are not required, but nice to have messages.
The reply contains a file ID. The reply can contain (updated) information on response time.
If the pillar is not able to deliver the requested file after all, it can also send a negative reply with an error code.
Reply messages also contains file ID.
NOTE: That if a checksum pillar receives a GetFileRequest message, it must fail, since it can only give a checksum.