com.amazon.redshift.core.v3

## Class CopyOutImpl

- java.lang.Object
- - com.amazon.redshift.core.v3.CopyOperationImpl
  - - com.amazon.redshift.core.v3.CopyOutImpl

All Implemented Interfaces:
  CopyOperation, CopyOut

    public class CopyOutImpl
    extends CopyOperationImpl
    implements CopyOut

Anticipated flow of a COPY TO STDOUT operation:

CopyManager.copyOut() ->QueryExecutor.startCopy() - sends given query to server ->processCopyResults(): - receives CopyOutResponse from Server - creates new CopyOutImpl ->initCopy(): - receives copy metadata from server ->CopyOutImpl.init() ->lock() connection for this operation - if query fails an exception is thrown - if query returns wrong CopyOperation, copyOut() cancels it before throwing exception <-returned: new CopyOutImpl holding lock on connection repeat CopyOut.readFromCopy() until null ->CopyOutImpl.readFromCopy() ->QueryExecutorImpl.readFromCopy() ->processCopyResults() - on copydata row from server ->CopyOutImpl.handleCopydata() stores reference to byte array - on CopyDone, CommandComplete, ReadyForQuery ->unlock() connection for use by other operations <-returned: byte array of data received from server or null at end.

### Constructor Summary

Constructors
Constructor and Description
`CopyOutImpl()`

### Method Summary

All Methods Instance Methods Concrete Methods
`protected void` `handleCopydata(byte[] data)` Consume received copy data.
`byte[]` `readFromCopy()` Blocks wait for a row of data to be received from server on an active copy operation.
`byte[]` `readFromCopy(boolean block)` Wait for a row of data to be received from server on an active copy operation.

### Methods inherited from class com.amazon.redshift.core.v3.CopyOperationImpl

`cancelCopy, getFieldCount, getFieldFormat, getFormat, getHandledRowCount, handleCommandStatus, isActive`

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

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

### Methods inherited from interface com.amazon.redshift.copy.CopyOperation

`cancelCopy, getFieldCount, getFieldFormat, getFormat, getHandledRowCount, isActive`

### Constructor Detail

#### CopyOutImpl

    public CopyOutImpl()

### Method Detail

#### readFromCopy

    public byte[] readFromCopy()
                        throws SQLException

Description copied from interface: `CopyOut`
Blocks wait for a row of data to be received from server on an active copy operation.

Specified by:
  `readFromCopy` in interface `CopyOut`
Returns:
  byte array received from server, null if server complete copy operation
Throws:
  `SQLException` - if something goes wrong for example socket timeout

#### readFromCopy

    public byte[] readFromCopy(boolean block)
                        throws SQLException

Description copied from interface: `CopyOut`
Wait for a row of data to be received from server on an active copy operation.

Specified by:
  `readFromCopy` in interface `CopyOut`
Parameters:
  `block` - `true` if need wait data from server otherwise `false` and will read pending message from server
Returns:
  byte array received from server, if pending message from server absent and use no blocking mode return null
Throws:
  `SQLException` - if something goes wrong for example socket timeout

#### handleCopydata

    protected void handleCopydata(byte[] data)

Description copied from class: `CopyOperationImpl`
Consume received copy data.

Specified by:
  `handleCopydata` in class `CopyOperationImpl`
Parameters:
  `data` - data that was receive by copy protocol