Interface FileTransferData

    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods Deprecated Methods 
      Modifier and Type Method Description
      void cd​(java.lang.String path)
      Sets the current remote working directory to the specified path.
      default java.util.function.Supplier<FileTransferMechanism> getAutoConnectClientFactory()  
      int getBlastRate()
      Deprecated.
      Method deprecated.
      int getBlockSize()
      Return the current block size.
      FileCatalystClientCallbackHandler getCallbackHandler()
      Returns the currently set callback handler that will be used to confirm resume, overwrite and to do post processing
      java.lang.String getClientConnectKey()
      Returns the client connect key, used to connect to non-FileCatalyst servers
      java.util.function.Supplier<ClientCredentials> getClientCredentials()
      Returns the credentials supplier that is set for this client.
      int getClientIdentifier()  
      java.lang.String getClientName()
      Used for HotFolder Reporting, And CSV Reports
      java.lang.String getCompFileFilter()
      Sets the compression FileFilter that is to be used by the implementation.
      int getCompLevel()
      Returns the current compression level (0 - 9).
      int getCompMethod()
      Returns the current compression method to be used during transfers.
      int getCompStrategy()
      Deprecated.
      Compression Strategy is no longer supported as an option in FileCatalyst.
      int getCongCtrlStrategy()
      Returns the current congestion control strategy.
      int getCongestionControlAggression()
      Returns an aggression factor between 1 (passive) and 10 (aggressive) used by the congestion control mechanism to determine how passive or aggressive it should be in the face of network congestion.
      int getConnectTimeout()
      Return the connect timeout value (in milliseconds)
      int getExtendedReadTimeout()
      This is the length of time in milliseconds the client will wait for a reply after sending a long running command (such as MD5, MKDLT, MKSIG, ZIP, UNZIP) to the FileCatalyst server.
      FileCatalystFileFilter getFileFilter()
      Returns the current file filter that is used to filter out information for a transfer.
      int getFileTransferPriority()
      Returns the task file transfer priority
      java.lang.String getForceFileOwnershipGroup()
      Returns the groupname / groupID to be used when attempting to force group level ownership for files downloaded by the client.
      java.lang.String getForceFileOwnershipUser()
      Returns the username to be used when attempting to force file ownership for files downloaded by the client
      int getIncomingDataPort()
      Deprecated. 
      int[] getIncomingDataPorts()
      Returns the list of ports used for incoming UDP packets on downloads
      int getIncrementalMode()
      Returns the current incremental mode.
      default java.lang.String getLocalWorkingDirectory()
      Deprecated.
      Method is deprecated.
      java.nio.file.Path getLocalWorkingDirectoryPath()  
      unlimited.core.util.common.logs.LogUtils getLogger()
      Returns the logger that is used
      java.lang.String getLogLocation()
      Returns the current location for the log files.
      int getMaxRetries()
      Returns the number of times to retry a broken or interrupted transfer.
      int getMd5RateLimit()
      Returns the current MD5 that is set.
      int getNumBlockReaders()
      Returns the number of block reader threads.
      int getNumBlockWriters()
      Returns the number of block writer threads.
      int getNumFTPStreams()
      Returns the number of concurrent streams that will be used for FTP transfers
      int getNumPacketProcessors()
      Return the current number of packet processor threads.
      int getNumReceiveSockets()
      Returns the current number of receive sockets.
      int getNumSenderSockets()
      Return the number of Sender sockets to use
      int getNumSenderThreads()
      Returns the number of threads that will be used at most for each FC transmission.
      int getNumThreads()
      Deprecated. 
      int getNumUDPSockets()
      Deprecated. 
      java.util.Observer getObserver()
      Returns the Observer that is currently set.
      int getPacketQueueDepth()
      Return the current packet queue depth.
      int getPacketSize()
      Returns the current packet size in bytes.
      PostTaskSentData getPostTaskSentData()
      Returns the current post task sent data
      java.lang.String getPostURL()
      Returns the current post URL to use
      int getProgressiveTimeout()
      Returns the current progressive timeout value.
      java.lang.String getProgressiveTimeoutFilter()
      Returns the current progressive timeout filter.
      int getReadBufferSizeKB()
      Return the current read buffer size, in KB Value zero (0) indicates read buffer is dictated by the network block size.
      int getReadTimeout()
      This is the length of time in milliseconds the client will wait for a reply after sending a command to the FileCatalyst server.
      int getRemotePort()
      Gets the remote port to which this client will be connected.
      java.lang.String getRemoteServer()
      This method returns the remote server / hostname to which this client is connected.
      boolean getRenameExtension()
      Returns whether or not the rename extension will be used.
      java.lang.String getServerAgentID()
      Returns the server's current agent ID.
      int getServerOverrideBandwidth()
      Returns the override bandwidth value that has been specified by server.
      java.lang.String getServletLocation()
      FileCatalyst has the ability to upload using the HTTP/S protocol as long as the FileCatalyst Servlet application is installed and properly configured.
      int getServletMultiplier()
      When uploading in HTTP mode using FileCatalyst Servlet, this option allows the upload buffer size to be tuned.
      int getSessionCount()
      Returns the current number of active sessions that the implementation has
      java.lang.String getSessionID()
      Returns the current session ID of the implementation
      unlimited.core.util.common.net.ssl.FCSSLSocketProducerImpl getSSLSocketProducer()
      Retrieves the implementation that will be used to generate SSL sockets
      int getTargetRate()
      Returns the current target rate for this client.
      java.lang.String getTaskID()
      Returns the current task ID
      int getTempMode()
      Returns the temporary mode for the implementation
      boolean getTransferEmptyDirectories()
      Returns whether not the implementation is set to transfer empty directories.
      int getTransferRate()
      Returns the implementation's current transfer rate
      int getUserRelativePriority()
      This priority hint is to help the server distribute bandwidth within its own set parameters.
      int getVerifyMode()
      Returns the current integrity verification mode.
      long getWaitRetry()
      Returns the amount of milliseconds to wait between retries for failed transfers.
      int getWriteBufferSizeKB()
      Return the current write buffer size.
      java.lang.String getWriteFileMode()
      Gets the file write mode set Client application will use these values for downloads only.
      long getZipFileSizeLimit()
      Returns the zip file size limit in bytes.
      boolean isAutoResume()
      Returns true if auto-resume is enabled.
      boolean isAutoUnzip()
      Returns true if auto unzip is enabled, false otherwise.
      boolean isAutoZip()
      Returns true if auto zip is enabled, false otherwise.
      boolean isCompressionEnabled()
      Returns true if compression is enabled, false otherwise.
      boolean isCongestionControlEnabled()
      Returns true if congestion control is currently enabled.
      boolean isDebug()
      Returns true if debug is set to true.
      boolean isDeleteAfterTransfer()
      Returns true if the delete after transfer option is enabled, false otherwise.
      boolean isDowngradeModeOnReConnect()
      Returns true if the downgrade on reconnect option is enabled, false otherwise.
      boolean isForceTCPmodeACKs()
      Returns true if TCP mode ACKs are enabled.
      boolean isIncrementalSizeCheckOnly()
      Returns whether or not incremental has been set to use the size only option
      boolean isMaintainLastModified()
      Returns true if Maintain last modified is enabled.
      boolean isMaintainPermissions()
      Returns true if maintain permissions is enabled.
      default boolean isMoveToSent()  
      boolean isOptimizeBlockSize()
      Returns true if optimize block size feature is enabled.
      boolean isProgressiveTransfers()
      Return true if the progressive option is enabled, false otherwise.
      boolean isServerOverridebandwidth()
      Returns whether or not the server has specified that the bandwidth should be overridden.
      boolean isShowConsoleLog()
      Returns true if console log is enabled.
      boolean isTransferEmptyDirectories()
      Returns whether or not the implementation should be transferring empty directories
      boolean isTransferWithTempName()
      Returns true if transferring with temporary names is enabled
      boolean isUseCompression()
      Deprecated. 
      boolean isUseCongestionControl()
      Deprecated. 
      boolean isUseIncremental()
      Returns true if incremental feature is enabled
      boolean isUseSSL()
      Returns true if SSL mode is enabled, false otherwise.
      boolean isVerifyIntegrity()
      Returns true if integrity check is enabled.
      int lastServerRestrictedRate()
      Returns the last rate (kbps) that the Server had replied with.
      java.lang.String pwd()
      Returns the current remote working directory.
      void setAutoResume​(boolean autoResume)
      Enables/disables auto resume feature.
      void setAutoUnzip​(boolean autoUnzip)
      Enables/disables auto unzip feature.
      void setAutoZip​(boolean autoZip)
      Enables/disables auto zip feature.
      void setBlockSize​(int blockSize)
      Set the block size.
      void setCallbackHandler​(FileCatalystClientCallbackHandler callbackHandler)
      Sets a callback handler that will be used to confirm resume, overwrite and to do post processing
      void setClientAgentID​(java.lang.String clientAgentID)
      Sets the current client agent ID to the new specified value.
      void setClientConnectKey​(java.lang.String clientConnectKey)
      This key must be set in order to connect to non-FileCatalyst servers.
      void setClientCredentials​(java.util.function.Supplier<ClientCredentials> creds)
      Sets the credentials supplier for this connection.
      void setClientIdentifier​(int clientIdentifier)
      An ID value that identifies this client to the FileCatalyst Server.
      void setClientName​(java.lang.String clientName)
      Sets the current client name to the value that is specified
      void setClientString​(java.lang.String clientString)
      Set a text string that will be displayed on the server UI to identify this client.
      void setClientSubIdentifier​(int clientSubIdentifier)
      Sets an ID that further identifies this client
      void setClientWorkingPath​(java.nio.file.Path clientWorkingPath)
      Sets the client's current working path to the value specified
      void setCompFileFilter​(java.lang.String compFileFilter)
      Sets the compression FileFilter that is to be used by the implementation
      void setCompLevel​(int compLevel)
      Sets the compression level (0 - 9 with default of 4).
      void setCompMethod​(int compMethod)
      Sets the current compression method to be used during transfers.
      void setCompressionEnabled​(boolean enable)
      Enables/disables on the fly compression.
      void setCompStrategy​(int compStrategy)
      Deprecated.
      Specifying Compression Strategy is no longer supported.
      void setCongCtrlStrategy​(int congCtrlStrategy)
      Sets the congestion control strategy.
      void setCongestionControlAggression​(int congestionControlAggression)
      Specifies an aggression factor between 1 (passive) and 10 (aggressive) used by the congestion control mechanism to determine how passive or aggressive it should be in the face of network congestion.
      void setCongestionControlEnabled​(boolean enabled)
      Enables/disables congestion control for this client.
      void setConnectTimeout​(int millisec)
      Sets the connect timeout value (in milliseconds).
      void setDebug​(boolean debug)
      Turns on debug mode.
      void setDeleteAfterTransfer​(boolean deleteAfterTransfer)
      With this option enabled, source files will be deleted after the transfer is complete.
      void setDowngradeModeOnReConnect​(boolean downgradeModeOnReConnect)
      If set to true, if a disconnect occurs during a UDP transfer, upon reconnect and resume, the transfer mode is downgraded to multi-stream TCP, then single stream TCP, and finally HTTP (if available).
      void setExtendedReadTimeout​(int millisecs)
      This is the length of time the client will wait for a reply after sending a long running command (such as MD5, MKDLT, MKSIG, ZIP, UNZIP) to the FileCatalyst server.
      void setFileTransferPriority​(int fileTransferPriority)
      Sets the FileTransferPrioriry to new new value.
      void setForceFileOwnershipGroup​(java.lang.String forceFileOwnershipGroup)
      Sets the groupname / groupID to be used when attempting to force group level ownership for files downloaded by the client.
      void setForceFileOwnershipUser​(java.lang.String forceFileOwnershipUser)
      Sets the username to be used when attempting to force file ownership for files downloaded by the client
      void setForceTCPmodeACKs​(boolean forceTCPmodeACKs)
      By default, FileCatalyst uses UDP to acknowledge data received.
      void setIncomingDataPort​(int inDataPort)
      Sets the port used for incoming UDP packets on downloads.
      void setIncomingDataPorts​(int[] inDataPorts)
      Sets the port used for incoming UDP packets on downloads.
      void setIncrementalMode​(int incrementalMode)
      When incremental is enabled, this method allows you to choose the incremental mode.
      void setIncrementalSizeCheckOnly​(boolean incrementalSizeCheckOnly)
      Setting this value will cause the MD5 checks to be skipped and the files compared using size only.
      default void setLocalWorkingDirectory​(java.lang.String localWorkingDirectory)
      Deprecated.
      Method is deprecated.
      void setLocalWorkingDirectory​(java.nio.file.Path localWorkingDirecctory)
      Sets the Local Working directory.
      void setLogger​(unlimited.core.util.common.logs.LogUtils logger)
      overriding the logUtils object.
      void setLogLocation​(java.lang.String logLocation)
      Specifies a directory on the local system where the log file should be stored.
      void setMaintainLastModified​(boolean maintainLastModified)
      Sets the maintain last modified feature to the value specified.
      void setMaintainPermissions​(boolean maintainPermissions)
      If set to true, upon each successful transfer, the destination file permissions will be set to match those of the source file.
      void setMaxRetries​(int maxRetries)
      Specify the number of times to retry a broken or interrupted transfer.
      void setMd5RateLimit​(int md5RateLimit)
      Sets the rate limit to use when calculating MD5s of files
      void setMode​(int mode)
      Set the transfer mode of this client.
      void setNumBlockReaders​(int numBlockReaders)
      Sets the number of block reader threads.
      void setNumBlockWriters​(int numBlockWriters)
      Sets the number of block writer threads to use when receiving a file.
      void setNumFTPStreams​(int numFTPStreams)
      When transferring in FTP mode, it is possible to send with several concurrent streams.
      void setNumPacketProcessors​(int numPacketProcessors)
      Sets the number of threads used to process incoming UDP packets when downloading.
      void setNumReceiveSockets​(int numReceiveSockets)
      Set the number of UDP sockets to use to receive packets during a UDP download.
      void setNumSenderSockets​(int numSenderSockets)
      Sets the number of UDP sockets to use when uploading a file in UDP mode.
      void setNumSenderThreads​(int numThreads)
      This value determines how many blocks will be sent into the pipe before redundant data will be sent.
      void setNumThreads​(int numThreads)
      Deprecated. 
      void setNumUDPSockets​(int numUDPSockets)
      Deprecated. 
      void setObserver​(java.util.Observer observer)
      FCClient is not directly observable, however TransferHook is.
      void setOptimizeBlockSize​(boolean optimizeBlockSize)
      If set to true, FileCatalyst will attempt to optimize the current block size to be an exact multiple of the data size that is being transmitted.
      void setPacketQueueDepth​(int packetQueueDepth)
      Sets the depth of the application level packet queue.
      void setPacketSize​(int packetSize)
      Set the unit size.
      void setPostTaskSentData​(PostTaskSentData data)
      Sets the current post task sent data to the specified value
      void setPostURL​(java.lang.String postURL)
      Sets the current post URL to the value that is defined
      void setProgressiveTimeout​(int progressiveTimeout)
      Sets the current progressive timeout to the value supplied
      void setProgressiveTimeoutFilter​(java.lang.String progressiveTimeoutFilter)
      Sets the current progressive timeout filter to the value that is set to
      void setProgressiveTransfers​(boolean progressiveTransfers)
      With this option enabled, upon completion of an upload or download, FileCatalyst will compare the size of the source file to the size when it began the transfer.
      void setReadBufferSizeKB​(int bufferSizeKB)
      Sets the read buffer size used when reading data from disk.
      void setReadTimeout​(int millisecs)
      This is the length of time the client will wait for a reply after sending a command to the FileCatalyst server.
      void setRemotePort​(int remotePort)
      Sets the remote port to which this client will be connected.
      void setRemoteServer​(java.lang.String remoteServer)
      Set the remote server to which this client should connect.
      void setRenameExtension​(boolean renameExtension)
      Sets whether or not the rename extension should be used
      void setServerAgentID​(java.lang.String serverAgentID)
      Sets the server agent ID to the new value
      void setServletLocation​(java.lang.String servletLocation)
      FileCatalyst has the ability to upload using the HTTP/S protocol as long as the FileCatalyst Servlet application is installed and properly configured.
      void setServletLocation​(java.lang.String servletLocation, java.lang.String servletSessionID, java.lang.String welcomeMessage)
      FileCatalyst has the ability to upload using the HTTP/S protocol as long as the FileCatalyst Servlet application is installed and properly configured.
      void setServletMultiplier​(int servletMultiplier)
      When uploading in HTTP mode using FileCatalyst Servlet, this option allows the upload buffer size to be tuned.
      void setSessionID​(java.lang.String sessionID)
      Sets the session ID to the specified value.
      void setShowConsoleLog​(boolean showConsoleLog)
      If set to true, all logging information is also sent to standard out.
      void setSSLSocketProducer​(unlimited.core.util.common.net.ssl.FCSSLSocketProducerImpl producerImpl)
      Sets the implementation that will be used to generate SSL sockets
      void setStartRate​(int slowStartRate)
      Sets the start rate for FC transfers in Kilobits per second.
      void setTargetRate​(int targetRate)
      Sets the target rate (kbps) for this client.
      void setTaskID​(java.lang.String taskID)
      Sets the current task ID to the new value supplied
      void setTransactionID​(java.lang.String uniqueID)
      Sets a unique transaction number for the transfer (instance variable).
      void setTransferEmptyDirectories​(boolean transferEmptyDirectories)
      Sets whether or not the implementation should transfer empty directories
      void setTransferToServerOverride​(int serverOverrideBW)
      Sets bandwidth value that the Server is attempting to override this client to.
      void setTransferWithTempName​(boolean transferWithTempName)
      With this option enabled, files will be uploaded with a temporary filename and renamed back to their original name when the transfer is complete.
      void setTransferWithTempName​(boolean transferWithTempName, int tempMode)
      With this option enabled, files will be uploaded with a temporary filename and renamed back to their original name when the transfer is complete.
      void setUnitSize​(int unitSize)
      Deprecated. 
      void setUseCompression​(boolean useCompression)
      Deprecated. 
      void setUseCongestionControl​(boolean useCongestionControl)
      Deprecated. 
      void setUseIncremental​(boolean useIncremental)
      If set to true, before each source file is transferred, it will be compared with the destination file if it exists to ensure the file has changed.
      void setUserRelativePriority​(int priority)
      This priority hint is to help the server distribute bandwidth within its own set parameters.
      void setUseSSL​(boolean useSSL)
      If set to true, control connection will be made using an implicit SSL connection.
      void setVerifyIntegrity​(boolean verifyIntegrity)
      If set to true, after each file is transferred an MD5 sum will be performed on the destination file and the result will be compared to that of the source file to ensure the files are identical.
      void setVerifyMode​(int verifyMode)
      Sets the integrity verification mode
      void setWaitRetry​(long waitRetry)
      Sets the amount of time in milliseconds to wait before the client attempts to retry a failed transfer
      void setWriteBufferSizeKB​(int bufferSizeKB)
      Sets the write buffer size used when saving data to disk.
      void setWriteFileMode​(java.lang.String mode)
      Set JAVA file write mode when saving data to disk.
      void setZipFileSizeLimit​(long zipFileSizeLimit)
      Sets the zip file size limit to the value specified.
    • Method Detail

      • isDowngradeModeOnReConnect

        boolean isDowngradeModeOnReConnect()
        Returns true if the downgrade on reconnect option is enabled, false otherwise.
        Returns:
        boolean true if the downgrade on reconnect option is enabled, false otherwise.
      • getObserver

        java.util.Observer getObserver()
        Returns the Observer that is currently set.
        Returns:
        the observer
      • setObserver

        void setObserver​(java.util.Observer observer)
        FCClient is not directly observable, however TransferHook is. Setting an Observer using this method ensures that the given Observer will be set on the TransferHook object returned from upload and download method calls prior to the actual transfer being initiated.
        Parameters:
        observer - the observer to set
      • setDowngradeModeOnReConnect

        void setDowngradeModeOnReConnect​(boolean downgradeModeOnReConnect)
        If set to true, if a disconnect occurs during a UDP transfer, upon reconnect and resume, the transfer mode is downgraded to multi-stream TCP, then single stream TCP, and finally HTTP (if available).
        Parameters:
        downgradeModeOnReConnect - the downgradeModeOnReConnect to set
      • setCallbackHandler

        void setCallbackHandler​(FileCatalystClientCallbackHandler callbackHandler)
        Sets a callback handler that will be used to confirm resume, overwrite and to do post processing
        Parameters:
        callbackHandler - the callbackHandler to set
      • setClientSubIdentifier

        void setClientSubIdentifier​(int clientSubIdentifier)
        Sets an ID that further identifies this client
        Parameters:
        clientSubIdentifier - the clientSubIdentifier to set
        Since:
        2.9
      • setClientString

        void setClientString​(java.lang.String clientString)
        Set a text string that will be displayed on the server UI to identify this client. USeful when developing 3rd party applications that are not identified properly by FileCatalyst internal IDs.
        Parameters:
        clientString - the clientString to set
        Since:
        2.9
      • getCallbackHandler

        FileCatalystClientCallbackHandler getCallbackHandler()
        Returns the currently set callback handler that will be used to confirm resume, overwrite and to do post processing
        Returns:
        the callbackHandler
      • getWriteFileMode

        java.lang.String getWriteFileMode()
        Gets the file write mode set Client application will use these values for downloads only. Server has these values defined remotely for uploads.
        Returns:
        returns either rw, rws, rwd, or ""
        Since:
        3.0
      • setWriteFileMode

        void setWriteFileMode​(java.lang.String mode)
        Set JAVA file write mode when saving data to disk. Client application will use these values for downloads only. Server has these values defined remotely for uploads.
        Parameters:
        mode - Default "" uses "rws" for Windows/Linux, and "rw" for Solaris/MacOSX. Possible values are "", rw, rws, rwd
        Since:
        v3.0
      • getWriteBufferSizeKB

        int getWriteBufferSizeKB()
        Return the current write buffer size. Value is in KB. Value zero (0) indicates read buffer is dictated by the network block size. Client application will use these values for downloads only. Server has these values defined remotely for uploads.
        Returns:
        the writeBufferSize
        Since:
        3.0
      • setWriteBufferSizeKB

        void setWriteBufferSizeKB​(int bufferSizeKB)
        Sets the write buffer size used when saving data to disk. Default (0) sets value to network buffer size. Client application will use these values for downloads only. Server has these values defined remotely for uploads.
        Parameters:
        bufferSizeKB - default value will utilize network block size for writes. Value in KB.
        Since:
        v3.0.0
      • getReadBufferSizeKB

        int getReadBufferSizeKB()
        Return the current read buffer size, in KB Value zero (0) indicates read buffer is dictated by the network block size. Client application will use these values for uploads only. Server has these values defined remotely for downloads.
        Returns:
        readBufferSize
        Since:
        3.0
      • setReadBufferSizeKB

        void setReadBufferSizeKB​(int bufferSizeKB)
        Sets the read buffer size used when reading data from disk. Default (0) sets value to network buffer size. Client application will use these values for uploads only. Server has these values defined remotely for downloads.
        Parameters:
        bufferSizeKB - default value will utilize network block size for reads.
        Since:
        v3.0.0
      • getNumBlockReaders

        int getNumBlockReaders()
        Returns the number of block reader threads. Client application will use these values for uploads only. Server has these values defined remotely for downloads.
        Returns:
        the numBlockReaders
        Since:
        3.0
      • setNumBlockReaders

        void setNumBlockReaders​(int numBlockReaders)
        Sets the number of block reader threads. Increasing the number of blocker reader threads may increase read speed performance and help boost performance. Client application will use these values for uploads only. Server has these values defined remotely for downloads.
        Parameters:
        numBlockReaders - the numBlockReaders to set
        Since:
        3.0
      • getNumBlockWriters

        int getNumBlockWriters()
        Returns the number of block writer threads. Client application will use these values for downloads only. Server has these values defined remotely for uploads.
        Returns:
        the numBlockWriters
        Since:
        3.0
      • setNumBlockWriters

        void setNumBlockWriters​(int numBlockWriters)
        Sets the number of block writer threads to use when receiving a file. Writing to the file with multiple threads may improve performance. Client application will use these values for downloads only. Server has these values defined remotely for uploads.
        Parameters:
        numBlockWriters - the numBlockWriters to set
        Since:
        3.0
      • getNumSenderThreads

        int getNumSenderThreads()
        Returns the number of threads that will be used at most for each FC transmission.
        Returns:
        the number of threads that will be used at most for each FC transmission.
      • setNumSenderThreads

        void setNumSenderThreads​(int numThreads)
        This value determines how many blocks will be sent into the pipe before redundant data will be sent. In high RTT environments, this value multiplied by the block size should be higher than the product of the RTT and the target rate. Depending on the speed and spec of the disk, it may be advantageous to have more threads with a higher block size or vise versa. Number of threads is set to 5 by default.
        Parameters:
        numThreads - Number of block sender threads to start for each transmission.
        Since:
        3.0
      • getNumReceiveSockets

        int getNumReceiveSockets()
        Returns the current number of receive sockets. Required for > 2gbps transfers. Default for this value is 1.
        Returns:
        the numReceiveSockets
        Since:
        3.0
      • setNumReceiveSockets

        void setNumReceiveSockets​(int numReceiveSockets)
        Set the number of UDP sockets to use to receive packets during a UDP download. When individual UDP sockets receive packets there is latency between when packets are received and when they are processed. This means processing packets form a single socket may limit reception because only a single CPU core may be used. Increasing the number of sockets will allow multiple threads to receive data, and process data in parallel, hence taking advantage of more CPU cores. Required for > 2gbps transfers. Default for this value is 1.
        Parameters:
        numReceiveSockets - the numReceiveSockets to set
        Since:
        3.0
      • getNumSenderSockets

        int getNumSenderSockets()
        Return the number of Sender sockets to use
        Returns:
        the Number of UDP Sockets currently set
      • setNumSenderSockets

        void setNumSenderSockets​(int numSenderSockets)
        Sets the number of UDP sockets to use when uploading a file in UDP mode. Increasing the number of sockets used may boost performance at high speeds (i.e. greater than 500 Mbps)
        Parameters:
        numUDPSockets - the Number of UDP Sockets to set
      • getPacketQueueDepth

        int getPacketQueueDepth()
        Return the current packet queue depth. Client application will use these values for downloads only. Server has these values defined remotely for uploads.
        Returns:
        the packetQueueDepth
        Since:
        3.0
      • setPacketQueueDepth

        void setPacketQueueDepth​(int packetQueueDepth)
        Sets the depth of the application level packet queue. As packets are received, the are inserted into this queue to await processing. This queue is an extra level of protection against packet loss due to CPU and I/O bottlenecks, and may help performance when using more than 1 packet processor threads, or in virtual environments where CPU and I/O performance is not predictable. Client application will use these values for downloads only. Server has these values defined remotely for uploads.
        Parameters:
        packetQueueDepth - the packetQueueDepth to set
        Since:
        3.0
      • getNumPacketProcessors

        int getNumPacketProcessors()
        Return the current number of packet processor threads. Client application will use these values for downloads only. Server has these values defined remotely for uploads.
        Returns:
        the numPacketProcessors
        Since:
        3.0
      • setNumPacketProcessors

        void setNumPacketProcessors​(int numPacketProcessors)
        Sets the number of threads used to process incoming UDP packets when downloading. When packets arrive they are inserted into a queue for processing. The packet processor threads process the packets and sort them into the proper data blocks. The number of threads used to process the packets becomes very important when AES encryption is enabled as it distributes the decryption between the CPU cores. Client application will use these values for downloads only. Server has these values defined remotely for uploads.
        Parameters:
        numPacketProcessors - the numPacketProcessors to set
        Since:
        3.0
      • isCongestionControlEnabled

        boolean isCongestionControlEnabled()
        Returns true if congestion control is currently enabled.
        Returns:
        true if congestion control is currently enabled.
      • getCongestionControlAggression

        int getCongestionControlAggression()
        Returns an aggression factor between 1 (passive) and 10 (aggressive) used by the congestion control mechanism to determine how passive or aggressive it should be in the face of network congestion. Default value is 5.
        Returns:
        int Aggression factor between 1 (passive) and 10 (aggressive)
      • setCongestionControlEnabled

        void setCongestionControlEnabled​(boolean enabled)
        Enables/disables congestion control for this client. When enabled, the client will automatically decrease its transmission or reception rate when congestion is detected. Future versions will allow finer grain control over the reaction algorithm. Congestion control is set to true by default.
        Parameters:
        useCongestionControl - boolean value used to turn congestion control on/off
        enabled -
      • getCongCtrlStrategy

        int getCongCtrlStrategy()
        Returns the current congestion control strategy.

        The possible options are:

        • RTT based (CongestionControlType.RTT)
        • LOSS based (CongestionControlType.LOSS)
        • Rate based (CongestionControlType.BSS)
        The default congestion control strategy is Packet Loss.
        Returns:
        the congCtrlStrategy
        Since:
        3.0
      • setCongCtrlStrategy

        void setCongCtrlStrategy​(int congCtrlStrategy)
        Sets the congestion control strategy.

        The possible options are:

        • RTT based (CongestionControlType.RTT)
        • LOSS based (CongestionControlType.LOSS)
        • Rate based (CongestionControlType.BSS)
        The default congestion control strategy is Packet Loss.
        Parameters:
        congCtrlStrategy - the congCtrlStrategy to set
        Since:
        3.0
      • pwd

        java.lang.String pwd()
                      throws unlimited.core.util.common.exception.FCException,
                             java.io.IOException
        Returns the current remote working directory.
        Returns:
        the current remote working directory.
        Throws:
        unlimited.core.util.common.exception.FCException - If an error in the FC protocol occurs
        java.io.IOException - If a timeout, or other IO error occurs
      • cd

        void cd​(java.lang.String path)
         throws unlimited.core.util.common.exception.FCException,
                java.io.IOException
        Sets the current remote working directory to the specified path. This can be relative or absolute.
        Parameters:
        path - The desired remote path to change to.
        Throws:
        unlimited.core.util.common.exception.FCException - If an error in the FC protocol occurs, permission denied, etc...
        java.io.IOException - If a timeout, or other IO error occurs
      • getRemoteServer

        java.lang.String getRemoteServer()
        This method returns the remote server / hostname to which this client is connected.
        Returns:
        the remote server to which this client is connected.
      • setRemoteServer

        void setRemoteServer​(java.lang.String remoteServer)
        Set the remote server to which this client should connect. This should be called prior to calling the connect() method.
        Parameters:
        remoteServer - String value to specify the server to connect to
      • getRemotePort

        int getRemotePort()
        Gets the remote port to which this client will be connected.
        Returns:
        the remote port to which this client will be connected.
      • setRemotePort

        void setRemotePort​(int remotePort)
        Sets the remote port to which this client will be connected. This should be called prior to calling the connect() method.
        Parameters:
        remotePort - int value to specify the remort post to be used
      • getTargetRate

        int getTargetRate()
        Returns the current target rate for this client. The client will attempt to transfer files no faster than the specified rate. If a transfer is already in progress, an attempt will be made to adjust it's target rate to the specified value.
        Returns:
        the current target rate for this client.
      • setTargetRate

        void setTargetRate​(int targetRate)
        Sets the target rate (kbps) for this client. The client will attempt to transfer files no faster than the specified rate. If a transfer is already in progress, an attempt will be made to adjust it's target rate to the specified value.
        Parameters:
        targetRate - int value to specify the maximum transfer rate
      • getBlockSize

        int getBlockSize()
        Return the current block size. The block size determines how much data each thread will encode and send through the pipe. In higher RTT environments, it might be advantageous to increase this value as it will ensure the pipe is full of data. This however will cause the client side to consume more memory (number of threads * the block size)
        Returns:
        the current block size.
      • setBlockSize

        void setBlockSize​(int blockSize)
        Set the block size. The block size determines how much data each thread will encode and send through the pipe. In higher RTT environments, it might be advantageous to increase this value as it will ensure the pipe is full of data. This however will cause the client side to consume more memory (number of threads * the block size) Block size is set to 2048000 by default.
        Parameters:
        blockSize - An int value used to set the Block Size
      • getPacketSize

        int getPacketSize()
        Returns the current packet size in bytes. This is the encoded unit size, and determines the eventual UDP packet size. If the unit size is greater than the MTU of the network with will create fragmented UDP packets. This can lead to higher performance in low loss environments, but may decrease performance in environments with very low MTU (ATM) or high packet loss environments.
        Returns:
        The current packet size. In Bytes.
      • setPacketSize

        void setPacketSize​(int packetSize)
        Set the unit size. This is the encoded unit size, and determines the eventual UDP packet size. If the unit size is greater than the MTU of the network with will create fragmented UDP packets. This can lead to higher performance in low loss environments, but may decrease performance in environments with very low MTU (ATM) or high packet loss environments. Unit size is set to 1024 Bytes by default.
        Parameters:
        packetSize - int value used to set the Unit Size
      • setTransactionID

        void setTransactionID​(java.lang.String uniqueID)
        Sets a unique transaction number for the transfer (instance variable). Transaction number will be used as part of working/temporary filenames when transferring a file.

        Applies to temporary file name, zip file name, signature/delta filename.

        By default, a random unique ID is created per machine by the API. This ensures that on the server, two separate client connections into the same user account should not encounter a filename collision. However, if two concurrent transfers are being launched using the same fileset (ie: upload using auto-zip) from the client API to separate servers, this value must be set for each transfer in order to ensure that temporary & working file name is not reused for two distinct transfers.

        Value may be overridden if you explicitly specify a transaction ID during upload(Vector, String, String) or download(Vector, String, String) calls.

        Parameters:
        uniqueID - String value, should be alpha-numeric (Long.toString(System.currentTimeMillis()))
      • isAutoResume

        boolean isAutoResume()
        Returns true if auto-resume is enabled. When enabled, if the destination file is smaller than the source file, the client will compare the relevant portions of the files to see if a transfer can be resumed. This is done using an MD5 checksum.
        Returns:
        true if auto-resume is enabled. false otherwise.
      • setAutoResume

        void setAutoResume​(boolean autoResume)
        Enables/disables auto resume feature. When enabled, if the destination file is smaller than the source file, the client will compare the relevant portions of the files to see if a transfer can be resumed. This is done using an MD5 checksum. Auto resume is false by default.
        Parameters:
        autoResume - true/false to enabled or disable this feature.
      • isVerifyIntegrity

        boolean isVerifyIntegrity()
        Returns true if integrity check is enabled. If true, after each file is transferred an MD5 sum will be performed on the destination file and the result will be compared to that of the source file to ensure the files are identical.
        Returns:
        true if integrity check is enabled.
      • setVerifyIntegrity

        void setVerifyIntegrity​(boolean verifyIntegrity)
        If set to true, after each file is transferred an MD5 sum will be performed on the destination file and the result will be compared to that of the source file to ensure the files are identical. Verify integrity is false by default.
        Parameters:
        verifyIntegrity - true/false to enable or disable this feature.
      • isMaintainPermissions

        boolean isMaintainPermissions()
        Returns true if maintain permissions is enabled. If value returns true, upon each successful transfer, the destination file permissions will be set to match those of the source file. This features only functions when both the source and destination are running a Linux/Unix based OS.
        Returns:
        true if Maintain permissions is enabled
      • setMaintainPermissions

        void setMaintainPermissions​(boolean maintainPermissions)
        If set to true, upon each successful transfer, the destination file permissions will be set to match those of the source file. This features only functions when both the source and destination are running a Linux/Unix based OS. This feature is off by default.
        Parameters:
        maintainPermissions - true/false to enabled and disable this feature.
      • isMaintainLastModified

        boolean isMaintainLastModified()
        Returns true if Maintain last modified is enabled. If set to true, upon each successful transfer, the destination files modification date will be set to match that of the source file.
        Returns:
        true if Maintain last modified is enabled
      • setMaintainLastModified

        void setMaintainLastModified​(boolean maintainLastModified)
        Sets the maintain last modified feature to the value specified. If set to true, upon each successful transfer, the destination files modification date will be set to match that of the source file. This feature is off by default.
        Parameters:
        maintainLastModified - true/false to enabled and disable this feature.
      • isUseIncremental

        boolean isUseIncremental()
        Returns true if incremental feature is enabled
        Returns:
        true if incremental feature is enabled
      • setUseIncremental

        void setUseIncremental​(boolean useIncremental)
        If set to true, before each source file is transferred, it will be compared with the destination file if it exists to ensure the file has changed. If the file has not changed, the file will not be transmitted. This feature is off by default.
        Parameters:
        useIncremental - boolean value to turn incremental on/off
      • isOptimizeBlockSize

        boolean isOptimizeBlockSize()
        Returns true if optimize block size feature is enabled.
        Returns:
        true/false if this feature is enabled/disabled
      • setOptimizeBlockSize

        void setOptimizeBlockSize​(boolean optimizeBlockSize)
        If set to true, FileCatalyst will attempt to optimize the current block size to be an exact multiple of the data size that is being transmitted. This feature is on by default.
        Parameters:
        optimizeBlockSize - true/false to enabled and disable this feature.
      • getClientCredentials

        java.util.function.Supplier<ClientCredentials> getClientCredentials()
        Returns the credentials supplier that is set for this client.
        Returns:
        the credentials supplier that is set for this client.
      • setClientCredentials

        void setClientCredentials​(java.util.function.Supplier<ClientCredentials> creds)
        Sets the credentials supplier for this connection. Value is used to determine which user this transfer mechanism attempts to connect to a FC Server
        Parameters:
        credentials - the credentials supplier for this connection
      • isUseSSL

        boolean isUseSSL()
        Returns true if SSL mode is enabled, false otherwise.
        Returns:
        true if SSL mode is enabled, false otherwise.
      • setUseSSL

        void setUseSSL​(boolean useSSL)
        If set to true, control connection will be made using an implicit SSL connection. This must be set prior to calling the connect method.
        Parameters:
        useSSL - Boolean value to turn SSL on/off
      • getSSLSocketProducer

        unlimited.core.util.common.net.ssl.FCSSLSocketProducerImpl getSSLSocketProducer()
        Retrieves the implementation that will be used to generate SSL sockets
      • setSSLSocketProducer

        void setSSLSocketProducer​(unlimited.core.util.common.net.ssl.FCSSLSocketProducerImpl producerImpl)
        Sets the implementation that will be used to generate SSL sockets
        Parameters:
        producerImpl - Concrete instance that provides logic for generating SSL sockets
      • getLogLocation

        java.lang.String getLogLocation()
        Returns the current location for the log files.
        Returns:
        The current location for the log files.
      • setLogLocation

        void setLogLocation​(java.lang.String logLocation)
        Specifies a directory on the local system where the log file should be stored. If this value is not set, the log will be stored in the current working directory. This should be called prior to calling initialize() to have an affect.
        Parameters:
        logLocation - String value specifying where to store the logs
      • getLogger

        unlimited.core.util.common.logs.LogUtils getLogger()
        Returns the logger that is used
        Returns:
        the logger
      • setLogger

        void setLogger​(unlimited.core.util.common.logs.LogUtils logger)
        overriding the logUtils object.
        Parameters:
        logger - the logger to set
      • setStartRate

        void setStartRate​(int slowStartRate)
        Sets the start rate for FC transfers in Kilobits per second. All FC transfer will begin at this rate and ramp up to the specified target rate if no congestion is encounters. Congestion control must be enabled for this value to have an effect. Start rate is set to 1000 Kbps by default.
        Parameters:
        slowStartRate - int value used to set the rate in which the transfer should start at
      • getConnectTimeout

        int getConnectTimeout()
        Return the connect timeout value (in milliseconds)
        Returns:
        The connect timeout value (in milliseconds)
      • setConnectTimeout

        void setConnectTimeout​(int millisec)
        Sets the connect timeout value (in milliseconds). Default is 20000 milliseconds.
        Parameters:
        millisec - int value used to set the connect timeout
      • isShowConsoleLog

        boolean isShowConsoleLog()
        Returns true if console log is enabled.
        Returns:
        true if console log is enabled.
      • setShowConsoleLog

        void setShowConsoleLog​(boolean showConsoleLog)
        If set to true, all logging information is also sent to standard out. This must be enabled prior to calling the initialize method.
        Parameters:
        showConsoleLog - boolean value set to show the console Log or not
      • isDebug

        boolean isDebug()
        Returns true if debug is set to true.
        Returns:
        True if debug is set to true
      • setDebug

        void setDebug​(boolean debug)
        Turns on debug mode.
        Parameters:
        debug - boolean value to turn the debug mode on or of
      • getNumFTPStreams

        int getNumFTPStreams()
        Returns the number of concurrent streams that will be used for FTP transfers
        Returns:
        Number of concurrent streams that will be used for FTP transfers
      • getCompMethod

        int getCompMethod()
        Returns the current compression method to be used during transfers. The method dictates what type of algorithm to use when compressing the data into smaller amounts.

        The available compression strategies that can be used are as follows:

        • 0: Default Zip deflator (Lower CPU and memory usage with less efficient compression)
        • 1: LMZA (Higher CPU and memory usage with more efficient data compression)
          Returns:
          int The current compression Method.
        • getCompLevel

          int getCompLevel()
          Returns the current compression level (0 - 9). This compression level is used determine the amount of compression to be used when attempting to compress the data in a given transfer. In some networks (such as high bandwidth connections), it may be helpful to lower the amount of compression to a smaller number. In other networks (low bandwidth, satellite networks), it may be helpful t maximize the compression (comp level = 9).
          Returns:
          int The current compression level
        • getCompStrategy

          @Deprecated
          int getCompStrategy()
          Deprecated.
          Compression Strategy is no longer supported as an option in FileCatalyst. Default strategy is always used.
          Returns the current compression deflater strategy that will be used in the current compression method to minimize the data and compress into smaller byte values.

          Valid return values are:

          • java.util.zip.Deflater.DEFAULT_STRATEGY
          • java.util.zip.Deflater.FILTERED (Strategy that is most beneficial when compressing filtered, sorted data)
          • java.util.zip.Deflater.HUFFMAN_ONLY (Strategy that compresses and decompresses data by encoding and decoding data into different information)
          Returns:
          int The current compression strategy
        • isCompressionEnabled

          boolean isCompressionEnabled()
          Returns true if compression is enabled, false otherwise.
          Returns:
          boolean True if compression is enabled, false otherwise.
        • getIncrementalMode

          int getIncrementalMode()
          Returns the current incremental mode.
          Returns:
          int The current incremental mode.
        • isAutoZip

          boolean isAutoZip()
          Returns true if auto zip is enabled, false otherwise.
          Returns:
          boolean True if auto zip is enabled, false otherwise.
        • isAutoUnzip

          boolean isAutoUnzip()
          Returns true if auto unzip is enabled, false otherwise.
          Returns:
          boolean True if auto zip is enabled, false otherwise.
        • isTransferWithTempName

          boolean isTransferWithTempName()
          Returns true if transferring with temporary names is enabled
          Returns:
          boolean True if transferring with temporary names is enabled
        • getReadTimeout

          int getReadTimeout()
          This is the length of time in milliseconds the client will wait for a reply after sending a command to the FileCatalyst server.
          Returns:
          int The current read timeout value, in millisecods..
        • getExtendedReadTimeout

          int getExtendedReadTimeout()
          This is the length of time in milliseconds the client will wait for a reply after sending a long running command (such as MD5, MKDLT, MKSIG, ZIP, UNZIP) to the FileCatalyst server.
          Returns:
          int The current extended read timeout value, in millisecods.
        • getServletLocation

          java.lang.String getServletLocation()
          FileCatalyst has the ability to upload using the HTTP/S protocol as long as the FileCatalyst Servlet application is installed and properly configured. This method allows you to retrieve the current URL of the FileCatalyst Servlet if it has been set.
          Returns:
          String the URL of FileCatalyst Servlet, or null if it has not been set.
        • getLocalWorkingDirectory

          @Deprecated
          default java.lang.String getLocalWorkingDirectory()
          Deprecated.
          Method is deprecated. Please use getLocalWorkingDirectoryPath() instead
          Returns the current local working directory
          Returns:
          String the current local working directory
        • getLocalWorkingDirectoryPath

          java.nio.file.Path getLocalWorkingDirectoryPath()
        • isDeleteAfterTransfer

          boolean isDeleteAfterTransfer()
          Returns true if the delete after transfer option is enabled, false otherwise. With this option enabled, source files will be deleted after the transfer is complete. If the transfer is an upload, the local files will be deleted. If the transfer is a download, the remote files will be deleted.
          Returns:
          boolean true if the delete after transfer option is enabled, false otherwise.
        • isProgressiveTransfers

          boolean isProgressiveTransfers()
          Return true if the progressive option is enabled, false otherwise.
          Returns:
          boolean true if the progressive option is enabled, false otherwise.
        • getIncomingDataPort

          @Deprecated
          int getIncomingDataPort()
          Deprecated.
          Returns the port used for incoming UDP packets on downloads Only the first port will be returned in the case of v3.0 where multi-receive sockets have been enabled.
          Returns:
          int The port used for incoming UDP packets on downloads (Only the first port will be returned in the case of v3.0 where multi-receive sockets have been enabled.)
        • getIncomingDataPorts

          int[] getIncomingDataPorts()
          Returns the list of ports used for incoming UDP packets on downloads
          Returns:
          int The list of port used for incoming UDP packets on downloads
        • getServletMultiplier

          int getServletMultiplier()
          When uploading in HTTP mode using FileCatalyst Servlet, this option allows the upload buffer size to be tuned. This method returns the current value.
          Returns:
          int multiplier value used to tune upload buffer
        • getClientConnectKey

          java.lang.String getClientConnectKey()
          Returns the client connect key, used to connect to non-FileCatalyst servers
          Returns:
          String Client Connect Key
        • setNumFTPStreams

          void setNumFTPStreams​(int numFTPStreams)
          When transferring in FTP mode, it is possible to send with several concurrent streams. This may increase performance on connections with low packet loss, but high latency. Speed gains are linear, that is, if you get 2 Mbps with 1 stream, you should get 4 Mbps with 2 streams.
          Parameters:
          numFTPStreams - Number of concurrent streams to use.
        • setCompStrategy

          @Deprecated
          void setCompStrategy​(int compStrategy)
                        throws java.lang.Exception
          Deprecated.
          Specifying Compression Strategy is no longer supported. Default strategy will be used.
          Sets the compression deflater strategy that will be used within the compression method to minimize the data and compress into smaller byte values.

          Valid values are:

          • java.util.zip.Deflater.DEFAULT_STRATEGY
          • java.util.zip.Deflater.FILTERED (Strategy that is most beneficial when compressing filtered, sorted data)
          • java.util.zip.Deflater.HUFFMAN_ONLY (Strategy that compresses and decompresses data by encoding and decoding data into different information)
          Parameters:
          compStrategy - int The new compression strategy
          Throws:
          java.lang.Exception
        • setCompMethod

          void setCompMethod​(int compMethod)
                      throws java.lang.Exception
          Sets the current compression method to be used during transfers. The method dictates what type of algorithm to use alongside the deflater when compressing the data into smaller amounts.

          The available compression strategies that can be used are as follows:

          • 0: Default Zip deflator (Lower CPU and memory usage for less efficient compression)
          • 1: LMZA (Higher CPU and Memory usage for more efficient data compression)
            Parameters:
            compMethod - int The desired compression Method
            Throws:
            java.lang.Exception
          • setCompLevel

            void setCompLevel​(int compLevel)
                       throws java.lang.Exception
            Sets the compression level (0 - 9 with default of 4). This compression level is used determine the amount of compression to be used when attempting to compress the data in a given transfer. In some networks (such as high bandwidth connections), it may be helpful to lower the amount of compression to a smaller number. In other networks (low bandwidth, satellite networks), it may be helpful to maximize the compression (comp level = 9).
            Parameters:
            compLevel - int The desired compression level
            Throws:
            java.lang.Exception
          • setCompressionEnabled

            void setCompressionEnabled​(boolean enable)
            Enables/disables on the fly compression. When enabled, each block of data will be compressed on the fly before it is sent over the network.
            Parameters:
            useCompression - boolean true/false to enable/disable compression.
          • setIncrementalMode

            void setIncrementalMode​(int incrementalMode)
                             throws java.lang.Exception
            When incremental is enabled, this method allows you to choose the incremental mode.

            Valid modes are

            Parameters:
            incrementalMode - int The desired incremental mode.
            Throws:
            java.lang.Exception
          • setIncrementalSizeCheckOnly

            void setIncrementalSizeCheckOnly​(boolean incrementalSizeCheckOnly)
                                      throws java.lang.Exception
            Setting this value will cause the MD5 checks to be skipped and the files compared using size only.
            Parameters:
            incrementalSizeCheckOnly -
            Throws:
            java.lang.Exception
          • setAutoZip

            void setAutoZip​(boolean autoZip)
            Enables/disables auto zip feature. If this feature is enabled, prior to transferring, all files will be compressed into a single archive, transferred as one archive, and decompressed at the destination. Path structure will be maintained, as will file modification times. When using this feature in combination with setProgressive(true), FileCatalyst will beging to transfer the zip file before it is completely generated. This currently only works during uploads.
            Parameters:
            autoZip - boolean
          • setAutoUnzip

            void setAutoUnzip​(boolean autoUnzip)
            Enables/disables auto unzip feature. When using this feature in combination with setAutoZip(true), if this feature is enabled, all files will be decompressed at the destination, otherwise if this feature is disable, all files won't be extracted and not deleted either.
            Parameters:
            autoUnzip - boolean
          • setTransferWithTempName

            void setTransferWithTempName​(boolean transferWithTempName)
            With this option enabled, files will be uploaded with a temporary filename and renamed back to their original name when the transfer is complete. This allows other applications to identify files that are not complete.
            Parameters:
            transferWithTempName - boolean true/false to enable or disable this feature
          • setReadTimeout

            void setReadTimeout​(int millisecs)
            This is the length of time the client will wait for a reply after sending a command to the FileCatalyst server.
            Parameters:
            millisecs - int New timeout value (in millisecs)
          • setExtendedReadTimeout

            void setExtendedReadTimeout​(int millisecs)
            This is the length of time the client will wait for a reply after sending a long running command (such as MD5, MKDLT, MKSIG, ZIP, UNZIP) to the FileCatalyst server. Minimum value is 600000 (10 minutes). Any attempt to set a value lower than this will automatically be increased to 600000.
            Parameters:
            millisecs - int New timeout value (in millisecs).
          • setVerifyMode

            void setVerifyMode​(int verifyMode)
            Sets the integrity verification mode
            Parameters:
            verifyMode - int Sets the desired mode, TransferMode.VERIFY_AFTER or TransferMode.VERIFY_ON_THE_FLY.
            See Also:
            TransferMode
          • setServletLocation

            void setServletLocation​(java.lang.String servletLocation)
            FileCatalyst has the ability to upload using the HTTP/S protocol as long as the FileCatalyst Servlet application is installed and properly configured. This method allows you to set the URL of the FileCatalyst Servlet. Note that you must set the servlet location prior to calling connect(). You must also set the transfer mode to HTTP.
            Parameters:
            servletLocation - String The URL of the FileCatalyst Servlet
          • setServletLocation

            void setServletLocation​(java.lang.String servletLocation,
                                    java.lang.String servletSessionID,
                                    java.lang.String welcomeMessage)
            FileCatalyst has the ability to upload using the HTTP/S protocol as long as the FileCatalyst Servlet application is installed and properly configured. This method allows you to set the URL of the FileCatalyst Servlet. Note that you must set the servlet location prior to calling connect(). You must also set the transfer mode to HTTP.
            Parameters:
            servletLocation - String The URL of the FileCatalyst Servlet
            servletSessionID - If s session was already established that should be re-used, this session id should be set
            welcomeMessage - When connecting with pre-connected Servlet session, you may pass the welcome message to the FCClient as well so it can detect whether this is a FileCatalyst server or not as well as extract the version string.
          • setLocalWorkingDirectory

            @Deprecated
            default void setLocalWorkingDirectory​(java.lang.String localWorkingDirectory)
                                           throws java.io.IOException
            Deprecated.
            Method is deprecated. Please use setLocalWorkingDirectory(Path) instead
            Sets the Local Working directory. This directory is used as a base path during uploads or downloads. For example, if you specify an upload of the folder "/path1/path2" and you have set the working directory to "/path1" then the file will appear on the destination server as "/path2". If you had a local working directory of "/" then the entire path would be created on the destination server. Note: Call will attempt to create the directory if it doesn't currently exist
            Parameters:
            localWorkingDirectory - String The desired local working directory
            Throws:
            java.io.IOException
            Since:
            2.6
          • setLocalWorkingDirectory

            void setLocalWorkingDirectory​(java.nio.file.Path localWorkingDirecctory)
                                   throws java.io.IOException
            Sets the Local Working directory. This directory is used as a base path during uploads or downloads. For example, if you specify an upload of the folder "/path1/path2" and you have set the working directory to "/path1" then the file will appear on the destination server as "/path2". If you had a local working directory of "/" then the entire path would be created on the destination server. Note: Call will attempt to create the directory if it doesn't currently exist
            Parameters:
            localWorkingDirectory - String The desired local working directory
            Throws:
            java.io.IOException
            Since:
            2.6
          • setDeleteAfterTransfer

            void setDeleteAfterTransfer​(boolean deleteAfterTransfer)
            With this option enabled, source files will be deleted after the transfer is complete. If the transfer is an upload, the local files will be deleted. If the transfer is a download, the remote files will be deleted.
            Parameters:
            deleteAfterTransfer - boolean Enables/disables the delete after transfer option
          • setProgressiveTransfers

            void setProgressiveTransfers​(boolean progressiveTransfers)
            With this option enabled, upon completion of an upload or download, FileCatalyst will compare the size of the source file to the size when it began the transfer. If the file has grown, it will continue to transfer the new data until the file is no longer growing. In this way, it is able to download or upload files that are curently being copied, or are currently being encoded.
            Parameters:
            progressiveTransfers - boolean boolean Enables/disables the progressive transfer option
          • setIncomingDataPort

            void setIncomingDataPort​(int inDataPort)
            Sets the port used for incoming UDP packets on downloads. If not set the default port is 9000.
            Parameters:
            data - .incomingDataPort int The port used for incoming UDP packets on downloads
          • setIncomingDataPorts

            void setIncomingDataPorts​(int[] inDataPorts)
            Sets the port used for incoming UDP packets on downloads. Allows for multiple data ports to be selected to have more than one receiver socket open for incoming streams.
            Parameters:
            data - .incomingDataPort int The port used for incoming UDP packets on downloads
          • setServletMultiplier

            void setServletMultiplier​(int servletMultiplier)
            When uploading in HTTP mode using FileCatalyst Servlet, this option allows the upload buffer size to be tuned.
            Parameters:
            servletMultiplier - int multiplier value used to tune upload buffer
          • setClientConnectKey

            void setClientConnectKey​(java.lang.String clientConnectKey)
            This key must be set in order to connect to non-FileCatalyst servers. This method must be called prior to called connect() or the key will not have any effect.
            Parameters:
            clientConnectKey - String Client connect key
          • setClientIdentifier

            void setClientIdentifier​(int clientIdentifier)
            An ID value that identifies this client to the FileCatalyst Server.
            Parameters:
            clientIdentifier - int
          • setCongestionControlAggression

            void setCongestionControlAggression​(int congestionControlAggression)
            Specifies an aggression factor between 1 (passive) and 10 (aggressive) used by the congestion control mechanism to determine how passive or aggressive it should be in the face of network congestion.
            Parameters:
            congestionControlAggression - int Aggression factor between 1 and 10.
          • setTransferWithTempName

            void setTransferWithTempName​(boolean transferWithTempName,
                                         int tempMode)
            With this option enabled, files will be uploaded with a temporary filename and renamed back to their original name when the transfer is complete. This allows other applications to identify files that are not complete.
            Parameters:
            transferWithTempName - boolean true/false to enable or disable this feature
            tempMode - int Sets the desired mode, TransferMode.PREFIX or TransferMode.SUFFIX.
            See Also:
            TransferMode
          • getMaxRetries

            int getMaxRetries()
            Returns the number of times to retry a broken or interrupted transfer. Transfers will be reattempted upto the max number of retries before ultimately failing the transfer
            Default value for max retries is 10
            Returns:
            the maxRetries
          • setMaxRetries

            void setMaxRetries​(int maxRetries)
            Specify the number of times to retry a broken or interrupted transfer. Transfers will be reattempted upto the max number of retries before ultimately failing the transfer
            Default value for max retries is 10
            Parameters:
            maxRetries - the maxRetries to set
          • getWaitRetry

            long getWaitRetry()
            Returns the amount of milliseconds to wait between retries for failed transfers.
            Returns:
            the waitRetry
          • isForceTCPmodeACKs

            boolean isForceTCPmodeACKs()
            Returns true if TCP mode ACKs are enabled. If option is enabled, transfers will instead use TCP acknowledgement messages (ACKs) to confirm that data is received during the transfer. If the option is disabled, then transfer will use the default UDP ACK messages to ensure data is transferred.

            Note: In some cases UDP notifications may be blocked. If this is the case you may force the client to use TCP mode ACKs.

            Returns:
            true if TCP mode ACKs are enabled
          • setForceTCPmodeACKs

            void setForceTCPmodeACKs​(boolean forceTCPmodeACKs)
            By default, FileCatalyst uses UDP to acknowledge data received. If option is enabled, transfers will instead use TCP acknowledgement messages (ACKs) to confirm that data is received during the transfer. If the option is disabled, then transfer will use the default UDP ACK messages to ensure data is transferred.

            Note: In some cases UDP notifications may be blocked. If this is the case you may force the client to use TCP mode ACKs.

            Parameters:
            forceTCPmodeACKs - true if TCP mode ACKs should be used
          • setWaitRetry

            void setWaitRetry​(long waitRetry)
            Sets the amount of time in milliseconds to wait before the client attempts to retry a failed transfer
            Parameters:
            waitRetry - the waitRetry to set
          • getZipFileSizeLimit

            long getZipFileSizeLimit()
            Returns the zip file size limit in bytes. This zip file size limit is the maximum size that a zip file can be once it is created. If a zip file exceeds this value it will be split into multiple zips, and transferred in pieces
            Returns:
            the zipFileSizeLimit in bytes
            Since:
            2.8.0
          • setZipFileSizeLimit

            void setZipFileSizeLimit​(long zipFileSizeLimit)
            Sets the zip file size limit to the value specified. This zip file size limit is the maximum size that a zip file can be once it is created. If a zip file exceeds this value it will be split into multiple zips, and transferred in pieces
            Parameters:
            zipFileSizeLimit - the zipFileSizeLimit (in bytes) to set
            Since:
            2.8.0
          • isUseCongestionControl

            @Deprecated
            boolean isUseCongestionControl()
            Deprecated.
            Returns true if congestion control is currently enabled.
            Returns:
            true if congestion control is currently enabled.
          • setUseCongestionControl

            @Deprecated
            void setUseCongestionControl​(boolean useCongestionControl)
            Deprecated.
            Enables/disables congestion control for this client. When enabled, the client will automatically decrease its transmission or reception rate when congestion is detected. Future versions will allow finer grain control over the reaction algorithm. Congestion control is set to true by default.
            Parameters:
            useCongestionControl - boolean value used to turn congestion control on/off
          • setUnitSize

            @Deprecated
            void setUnitSize​(int unitSize)
            Deprecated.
            Use setPacketSize()
            Parameters:
            unitSize - int value used to set the Unit Size. In Bytes.
          • isUseCompression

            @Deprecated
            boolean isUseCompression()
            Deprecated.
            Returns true if compression is enabled, false otherwise.
            Returns:
            boolean True if compression is enabled, false otherwise.
          • getNumUDPSockets

            @Deprecated
            int getNumUDPSockets()
            Deprecated.
            Return the number of Sender sockets to use
            Returns:
            the Number of UDP Sockets currently set
          • setNumUDPSockets

            @Deprecated
            void setNumUDPSockets​(int numUDPSockets)
            Deprecated.
            Sets the number of UDP sockets to use when uploading a file in UDP mode. Increasing the number of sockets used may boost performance at high speeds (i.e. greater than 500 Mbps)
            Parameters:
            numUDPSockets - the Number of UDP Sockets to set
          • getNumThreads

            @Deprecated
            int getNumThreads()
            Deprecated.
            Returns the number of threads that will be used at most for each FC transmission.
            Returns:
            the number of threads that will be used at most for each FC transmission.
          • setNumThreads

            @Deprecated
            void setNumThreads​(int numThreads)
            Deprecated.
            This value determines how many blocks will be sent into the pipe before redundant data will be sent. In high RTT environments, this value multiplied by the block size should be higher than the product of the RTT and the target rate. Depending on the speed and spec of the disk, it may be advantageous to have more threads with a higher block size or vise versa. Number of threads is set to 5 by default.
            Parameters:
            numThreads - Number of block sender threads to start for each transmission.
          • setUseCompression

            @Deprecated
            void setUseCompression​(boolean useCompression)
            Deprecated.
            Enables/disables on the fly compression. When enabled, each block of data will be compressed on the fly before it is sent over the network.
            Parameters:
            useCompression - boolean true/false to enable/disable compression.
          • setCompFileFilter

            void setCompFileFilter​(java.lang.String compFileFilter)
            Sets the compression FileFilter that is to be used by the implementation
            Parameters:
            compFileFilter - Filter to set
          • getCompFileFilter

            java.lang.String getCompFileFilter()
            Sets the compression FileFilter that is to be used by the implementation. If a file is queued for compression and sucessfully passes this filter, it will be compressed prior to transferring. If the file is doesn't pass the filter, then it is not compressed, but is still transferred
            Returns:
            Current compression file filter
          • setTransferEmptyDirectories

            void setTransferEmptyDirectories​(boolean transferEmptyDirectories)
            Sets whether or not the implementation should transfer empty directories
            Parameters:
            transferEmptyDirectories - Boolean value to set
          • getTransferEmptyDirectories

            boolean getTransferEmptyDirectories()
            Returns whether not the implementation is set to transfer empty directories.
            Returns:
            True if implementation will transfer empty directories, false if not
          • setPostURL

            void setPostURL​(java.lang.String postURL)
            Sets the current post URL to the value that is defined
            Parameters:
            postURL - New postURL to use
          • getPostURL

            java.lang.String getPostURL()
            Returns the current post URL to use
            Returns:
          • setMd5RateLimit

            void setMd5RateLimit​(int md5RateLimit)
            Sets the rate limit to use when calculating MD5s of files
            Parameters:
            md5RateLimit - Limit to use
          • getMd5RateLimit

            int getMd5RateLimit()
            Returns the current MD5 that is set. Limit is used to limit the amount of CPU usage and speed that for MD5s
            Returns:
            Current MD5 rate that is set
          • setRenameExtension

            void setRenameExtension​(boolean renameExtension)
            Sets whether or not the rename extension should be used
            Parameters:
            renameExtension - Enabled boolean
          • getRenameExtension

            boolean getRenameExtension()
            Returns whether or not the rename extension will be used. If true, transfers of files with the extension .RDY will rename both the source and destination files to have the extension .PKD
            Returns:
            Boolean dictating the use of the rename extension
          • getTransferRate

            int getTransferRate()
            Returns the implementation's current transfer rate
            Returns:
            The current rate
          • getBlastRate

            @Deprecated
            int getBlastRate()
            Deprecated.
            Method deprecated. Use getTransferRate() instead
            Returns the implementation's current blast rate
            Returns:
            Current transfer rate
          • getServerAgentID

            java.lang.String getServerAgentID()
            Returns the server's current agent ID. Used with Central monitoring and management
            Returns:
            Server agent ID
          • getSessionID

            java.lang.String getSessionID()
            Returns the current session ID of the implementation
            Returns:
            The session ID
          • getSessionCount

            int getSessionCount()
            Returns the current number of active sessions that the implementation has
            Returns:
            Current number of sessions
          • getFileFilter

            FileCatalystFileFilter getFileFilter()
            Returns the current file filter that is used to filter out information for a transfer. If a file is queued for transfer and passes the filter's current settings, then it will transferred. Otherwise it will be ignored.
            Returns:
            Current file filter
          • setPostTaskSentData

            void setPostTaskSentData​(PostTaskSentData data)
            Sets the current post task sent data to the specified value
            Parameters:
            data -
          • getPostTaskSentData

            PostTaskSentData getPostTaskSentData()
            Returns the current post task sent data
          • isTransferEmptyDirectories

            boolean isTransferEmptyDirectories()
            Returns whether or not the implementation should be transferring empty directories
            Returns:
            true or false
          • getProgressiveTimeout

            int getProgressiveTimeout()
            Returns the current progressive timeout value. The value determines how many seconds we will wait for files to stop growing
            Returns:
          • getProgressiveTimeoutFilter

            java.lang.String getProgressiveTimeoutFilter()
            Returns the current progressive timeout filter. Value determines the file that will be included in progressive file growth checks
            Returns:
          • setProgressiveTimeout

            void setProgressiveTimeout​(int progressiveTimeout)
            Sets the current progressive timeout to the value supplied
            Parameters:
            progressiveTimeout - New timeout to set
          • setProgressiveTimeoutFilter

            void setProgressiveTimeoutFilter​(java.lang.String progressiveTimeoutFilter)
            Sets the current progressive timeout filter to the value that is set to
            Parameters:
            progressiveTimeoutFilter - Filter to set
          • setClientName

            void setClientName​(java.lang.String clientName)
            Sets the current client name to the value that is specified
            Parameters:
            clientName - Name to set
          • setClientWorkingPath

            void setClientWorkingPath​(java.nio.file.Path clientWorkingPath)
            Sets the client's current working path to the value specified
            Parameters:
            clientWorkingPath - Working path to set
          • getClientName

            java.lang.String getClientName()
            Used for HotFolder Reporting, And CSV Reports
          • setClientAgentID

            void setClientAgentID​(java.lang.String clientAgentID)
            Sets the current client agent ID to the new specified value. Do note that this ID value is used to distinguish this client and it's transfers from other clients in the reports
            Parameters:
            clientAgentID - New ID to set
          • setServerAgentID

            void setServerAgentID​(java.lang.String serverAgentID)
            Sets the server agent ID to the new value
            Parameters:
            serverAgentID - New value to set
          • setSessionID

            void setSessionID​(java.lang.String sessionID)
            Sets the session ID to the specified value.
            Parameters:
            sessionID -
          • getTempMode

            int getTempMode()
            Returns the temporary mode for the implementation
            Returns:
          • isIncrementalSizeCheckOnly

            boolean isIncrementalSizeCheckOnly()
            Returns whether or not incremental has been set to use the size only option
            Returns:
          • lastServerRestrictedRate

            int lastServerRestrictedRate()
            Returns the last rate (kbps) that the Server had replied with. This rate takes into account what the server is imposing during a transfer bandwidth speed.
          • isServerOverridebandwidth

            boolean isServerOverridebandwidth()
            Returns whether or not the server has specified that the bandwidth should be overridden. If true, then the bandwidth allocated to the client will be the value specified by the current server override bandwidth. If false, then the client will attempt to transfer at the rate specified by the target rate.
            Returns:
            true if the server is overriding the bandwidth during a transfer, always false if no transfer is happening.
          • getServerOverrideBandwidth

            int getServerOverrideBandwidth()
            Returns the override bandwidth value that has been specified by server. If isServerOverrideBandwith() == false, then 0 is returned
            Returns:
            if isServerOverridebandwidth() is true returns the serverOverrideBandwidth otherwise returns 0;
          • setTransferToServerOverride

            void setTransferToServerOverride​(int serverOverrideBW)
            Sets bandwidth value that the Server is attempting to override this client to. If the isServerOverrideBandwidth() returns true, then the client will attempt to transfer at the specified by the server override. Otherwise, it will attempt to transfer at the defined target rate.
            Parameters:
            serverOverrideBW - Kbps bandwidth value
          • setUserRelativePriority

            void setUserRelativePriority​(int priority)
            This priority hint is to help the server distribute bandwidth within its own set parameters. The scope of the hint is for all sessions with this client's agent ID connecting to this client's user.
            Parameters:
            priority - hint for server to distribute bandwidth when it would normally split it evenly.
          • getUserRelativePriority

            int getUserRelativePriority()
            This priority hint is to help the server distribute bandwidth within its own set parameters. The scope of the hint is for all sessions with this client's agent ID connecting to this client's user.
            Returns:
            priority hint for server to distribute bandwidth when it would normally split it evenly.
          • setTaskID

            void setTaskID​(java.lang.String taskID)
            Sets the current task ID to the new value supplied
            Parameters:
            taskID -
          • getTaskID

            java.lang.String getTaskID()
            Returns the current task ID
            Returns:
          • getFileTransferPriority

            int getFileTransferPriority()
            Returns the task file transfer priority
            Returns:
          • setFileTransferPriority

            void setFileTransferPriority​(int fileTransferPriority)
            Sets the FileTransferPrioriry to new new value. .

            Valid values are as follows:

            • 0 = Oldest files are transferred first
            • 1 = Newest files are transferred first
            • 2 = Smallest files are transferred first
            • 3 = Largest files are transferred first
            • 4 = No Priority for files
            Parameters:
            fileTransferPriority -
          • getForceFileOwnershipUser

            java.lang.String getForceFileOwnershipUser()
            Returns the username to be used when attempting to force file ownership for files downloaded by the client
            Returns:
            the forceFileOwnershipUser
          • setForceFileOwnershipUser

            void setForceFileOwnershipUser​(java.lang.String forceFileOwnershipUser)
            Sets the username to be used when attempting to force file ownership for files downloaded by the client
            Parameters:
            forceFileOwnershipUser - the forceFileOwnershipUser to set
          • getForceFileOwnershipGroup

            java.lang.String getForceFileOwnershipGroup()
            Returns the groupname / groupID to be used when attempting to force group level ownership for files downloaded by the client.
            Note: Value is ignored if on a Windows platform
            Returns:
            the forceFileOwnershipGroup
          • setForceFileOwnershipGroup

            void setForceFileOwnershipGroup​(java.lang.String forceFileOwnershipGroup)
            Sets the groupname / groupID to be used when attempting to force group level ownership for files downloaded by the client.
            Note: Value is ignored if on a Windows platform
          • getAutoConnectClientFactory

            default java.util.function.Supplier<FileTransferMechanism> getAutoConnectClientFactory()
            Returns:
            by default retuns a FileTransferMechanism factory that returns null FileTransferMechanisms
          • getClientIdentifier

            int getClientIdentifier()
          • isMoveToSent

            default boolean isMoveToSent()