Package org.apache.tools.ant.taskdefs.optional.ssh

# Class AbstractSshMessage

java.lang.Object
org.apache.tools.ant.taskdefs.optional.ssh.AbstractSshMessage

Direct Known Subclasses:
  `ScpFromMessage`, `ScpToMessage`

public abstract class AbstractSshMessage extends Object
Abstract class for ssh upload and download

## Constructor Summary

Constructors
Constructor
Description
`AbstractSshMessage(boolean verbose, boolean compressed, com.jcraft.jsch.Session session)`
Constructor for AbstractSshMessage
`AbstractSshMessage(boolean verbose, com.jcraft.jsch.Session session)`
Constructor for AbstractSshMessage
`AbstractSshMessage(com.jcraft.jsch.Session session)`
Constructor for AbstractSshMessage

## Method Summary

Modifier and Type
Method
Description
`abstract void`
`execute()`
Carry out the transfer.
`protected final boolean`
`getCompressed()`
Is the compressed attribute set.
`protected com.jcraft.jsch.SftpProgressMonitor`
`getProgressMonitor()`
Get the progress monitor.
`protected final boolean`
`getVerbose()`
Is the verbose attribute set.
`protected void`
`log(String message)`
Log a message to the log listener.
`protected void`
`logStats(long timeStarted, long timeEnded, long totalLength)`
Log transfer stats to the log listener.
`protected com.jcraft.jsch.Channel`
`openExecChannel(String command)`
Open an ssh channel.
`protected com.jcraft.jsch.ChannelSftp`
`openSftpChannel()`
Open an ssh sftp channel.
`protected void`
`sendAck(OutputStream out)`
Send an ack.
`void`
`setLogListener(LogListener aListener)`
Set a log listener.
`protected final int`
`trackProgress(long filesize, long totalLength, int percentTransmitted)`
Track progress every 10% if 100kb < filesize < 1Mb.
`protected void`
`waitForAck(InputStream in)`
Reads the response, throws a BuildException if the response indicates an error.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### AbstractSshMessage

public AbstractSshMessage(com.jcraft.jsch.Session session)
Constructor for AbstractSshMessage

Parameters:
  `session` - the ssh session to use

### AbstractSshMessage

public AbstractSshMessage(boolean verbose, com.jcraft.jsch.Session session)
Constructor for AbstractSshMessage

Parameters:
  `verbose` - if true do verbose logging
  `session` - the ssh session to use
Since:
  Ant 1.6.2

### AbstractSshMessage

public AbstractSshMessage(boolean verbose, boolean compressed, com.jcraft.jsch.Session session)
Constructor for AbstractSshMessage

Parameters:
  `verbose` - if true do verbose logging
  `compressed` - if true use compression
  `session` - the ssh session to use
Since:
  Ant 1.9.8

## Method Details

### openExecChannel

protected com.jcraft.jsch.Channel openExecChannel(String command) throws com.jcraft.jsch.JSchException
Open an ssh channel.

Parameters:
  `command` - the command to use
Returns:
  the channel
Throws:
  `com.jcraft.jsch.JSchException` - on error

### openSftpChannel

protected com.jcraft.jsch.ChannelSftp openSftpChannel() throws com.jcraft.jsch.JSchException
Open an ssh sftp channel.

Returns:
  the channel
Throws:
  `com.jcraft.jsch.JSchException` - on error

### sendAck

protected void sendAck(OutputStream out) throws IOException
Send an ack.

Parameters:
  `out` - the output stream to use
Throws:
  `IOException` - on error

### waitForAck

protected void waitForAck(InputStream in) throws IOException, BuildException
Reads the response, throws a BuildException if the response indicates an error.

Parameters:
  `in` - the input stream to use
Throws:
  `IOException` - on I/O error
  `BuildException` - on other errors

### execute

public abstract void execute() throws IOException, com.jcraft.jsch.JSchException
Carry out the transfer.

Throws:
  `IOException` - on I/O errors
  `com.jcraft.jsch.JSchException` - on ssh errors

### setLogListener

public void setLogListener(LogListener aListener)
Set a log listener.

Parameters:
  `aListener` - the log listener

### log

protected void log(String message)
Log a message to the log listener.

Parameters:
  `message` - the message to log

### logStats

protected void logStats(long timeStarted, long timeEnded, long totalLength)
Log transfer stats to the log listener.

Parameters:
  `timeStarted` - the time started
  `timeEnded` - the finishing time
  `totalLength` - the total length

### getVerbose

protected final boolean getVerbose()
Is the verbose attribute set.

Returns:
  true if the verbose attribute is set
Since:
  Ant 1.6.2

### getCompressed

protected final boolean getCompressed()
Is the compressed attribute set.

Returns:
  true if the compressed attribute is set
Since:
  Ant 1.9.8

### trackProgress

protected final int trackProgress(long filesize, long totalLength, int percentTransmitted)
Track progress every 10% if 100kb < filesize < 1Mb. For larger files track progress for every percent transmitted.

Parameters:
  `filesize` - the size of the file been transmitted
  `totalLength` - the total transmission size
  `percentTransmitted` - the current percent transmitted
Returns:
  the percent that the file is of the total

### getProgressMonitor

protected com.jcraft.jsch.SftpProgressMonitor getProgressMonitor()
Get the progress monitor.

Returns:
  the progress monitor.