Class ChecksumClient

  • All Implemented Interfaces:
    ReplicaClient

    public class ChecksumClient
    extends Object
    implements ReplicaClient
    Proxy for remote checksum archive. Establishes the jms connection to the remote checksum archive.

    Can be used in combination with any type of ChecksumServerAPI.

    • Method Detail

      • getInstance

        public static ChecksumClient getInstance​(ChannelID theCRin)
                                          throws IOFailure,
                                                 ArgumentNotValid
        The method for invoking an instance of this class.
        Parameters:
        theCRin - The channel for contacting the checksum archive.
        Returns:
        A new instance.
        Throws:
        IOFailure - If there is a problem with the connection.
        ArgumentNotValid - If the checksum replica channel is null.
      • sendCorrectMessage

        public void sendCorrectMessage​(CorrectMessage msg)
                                throws ArgumentNotValid
        Method for sending correct messages to the replica. This CorrectMessage is used to correct a bad entry in the archive.
        Specified by:
        sendCorrectMessage in interface ReplicaClient
        Parameters:
        msg - The CorrectMessage to send to the replica.
        Throws:
        ArgumentNotValid - If the CorrectMessage is null.
      • sendGetChecksumMessage

        public void sendGetChecksumMessage​(GetChecksumMessage msg)
        Method for retrieving the checksum of a specific arcfile within the archive.
        Specified by:
        sendGetChecksumMessage in interface ReplicaClient
        Parameters:
        msg - The GetChecksumMessage which will be sent to the checksum archive though the jms connection.
      • sendGetChecksumMessage

        public GetChecksumMessage sendGetChecksumMessage​(ChannelID replyChannel,
                                                         String filename)
                                                  throws ArgumentNotValid
        Method for retrieving the checksum of a specific arcfile within the archive.
        Specified by:
        sendGetChecksumMessage in interface ReplicaClient
        Parameters:
        replyChannel - The channel where the reply should be sent.
        filename - The GetChecksumMessage which has been sent to the checksum archive though the jms connection.
        Returns:
        The GetChecksumMessage which is sent.
        Throws:
        ArgumentNotValid - If the reply channel is null or if the filename is either null or the empty string.
      • getType

        public ReplicaType getType()
        Method for retrieving the type of replica. In this case the replica is a checksum replica.
        Specified by:
        getType in interface ReplicaClient
        Returns:
        The type of this replica, in this case Checksum replica.
      • sendUploadMessage

        public void sendUploadMessage​(RemoteFile rf,
                                      String precomputedChecksum)
                               throws ArgumentNotValid
        Method for uploading a file to the archive. This is only uploaded to one of the archives, not all of them. Thus using the 'any' channel.
        Specified by:
        sendUploadMessage in interface ReplicaClient
        Parameters:
        rf - The file to upload to the archive.
        precomputedChecksum - A precomputed checksum
        Throws:
        ArgumentNotValid - If the remote file is null.
      • sendBatchJob

        public BatchMessage sendBatchJob​(ChannelID replyChannel,
                                         FileBatchJob job)
                                  throws IllegalState,
                                         ArgumentNotValid
        Method for sending batch job messages to the replica. This is not allowed since this archive at the end of this client is a checksum archive, which cannot handle batch jobs.
        Specified by:
        sendBatchJob in interface ReplicaClient
        Parameters:
        replyChannel - The channel where the reply should be sent.
        job - The batchjob to execute.
        Returns:
        Nothing. It always throws an exception, since it is not allowed to run batchjobs on a checksum archive.
        Throws:
        IllegalState - Always. Since it is not legal to send a batchjob to a checksum replica.
        ArgumentNotValid - If the channel or the batchjob is null.
      • sendBatchJob

        public BatchMessage sendBatchJob​(BatchMessage msg)
                                  throws IllegalState,
                                         ArgumentNotValid
        Method for sending batch job messages to the replica. This is not allowed since this archive at the end of this client is a checksum archive, which cannot handle batch jobs.
        Specified by:
        sendBatchJob in interface ReplicaClient
        Parameters:
        msg - The batch message.
        Returns:
        Nothing. It always throws an exception, since it is not allowed to run batchjobs on a checksum archive.
        Throws:
        IllegalState - Always. Since it is not legal to send a batchjob to a checksum replica.
        ArgumentNotValid - If the message is null.
      • sendGetMessage

        public void sendGetMessage​(GetMessage msg)
                            throws IllegalState,
                                   ArgumentNotValid
        This method is intended to retrieve a record from an arc-file within the archive. But since this handles checksum archive, it does not have the actual arc-files, and this function should therefore fail.
        Specified by:
        sendGetMessage in interface ReplicaClient
        Parameters:
        msg - The GetMessage for retrieving the arc-record from the archive.
        Throws:
        IllegalState - Always. Since checksum replicas cannot handle this kind of messages.
        ArgumentNotValid - If the message is null.
      • sendGetFileMessage

        public void sendGetFileMessage​(GetFileMessage gfm)
                                throws IllegalState,
                                       ArgumentNotValid
        This method is intended to retrieve an arc-file from the archive. But since this handles checksum archive, it does not have the actual arc-files, and this function should therefore fail.
        Specified by:
        sendGetFileMessage in interface ReplicaClient
        Parameters:
        gfm - The GetFileMessage for retrieving the arc-file from the archive.
        Throws:
        IllegalState - Always. Since checksum replicas cannot handle this kind of messages.
        ArgumentNotValid - If the message is null.
      • sendRemoveAndGetFileMessage

        public void sendRemoveAndGetFileMessage​(RemoveAndGetFileMessage msg)
                                         throws IllegalState,
                                                ArgumentNotValid
        This method is intended to retrieve an arc-file from the archive. But since this handles checksum archive, it does not have the actual arc-files, and this function should therefore fail.
        Specified by:
        sendRemoveAndGetFileMessage in interface ReplicaClient
        Parameters:
        msg - The RemoveAndGetFileMessage for removing and retrieving an arc-file from the archive.
        Throws:
        IllegalState - Always. Since checksum replicas cannot handle this kind of messages.
        ArgumentNotValid - If the message is null.
      • close

        public void close()
        Method for closing this instance.
        Specified by:
        close in interface ReplicaClient