org.klomp.snark

## Class PeerConnectionOut

- java.lang.Object
- - org.klomp.snark.PeerConnectionOut

All Implemented Interfaces:
  Runnable

     class PeerConnectionOut
    extends Object
    implements Runnable

### Field Summary

Fields
`(package private) long` `lastSent`

### Constructor Summary

Constructors
Constructor and Description
`PeerConnectionOut(Peer peer, DataOutputStream dout)`

### Method Summary

Methods
`(package private) void` `cancelRequest(int piece, int begin, int length)`
`(package private) void` `cancelRequestMessages()` Remove all Request messages from the queue
`void` `disconnect()`
`(package private) int` `queuedBytes()`
`(package private) void` `retransmitRequests(List requests)`
`void` `run()` Continuesly monitors for more outgoing messages that have to be send.
`(package private) void` `sendAlive()`
`(package private) void` `sendBitfield(BitField bitfield)`
`(package private) void` `sendCancel(Request req)`
`(package private) void` `sendChoke(boolean choke)`
`(package private) void` `sendExtension(int id, byte[] bytes)`
`(package private) void` `sendHave(int piece)`
`(package private) void` `sendInterest(boolean interest)`
`(package private) void` `sendPiece(int piece, int begin, int length, byte[] bytes)` Queue a piece message with the data already loaded from disk Also add a timeout.
`(package private) void` `sendPiece(int piece, int begin, int length, DataLoader loader)` Queue a piece message with a callback to load the data from disk when required.
`(package private) void` `sendPort(int port)`
`(package private) void` `sendRequest(Request req)`
`(package private) void` `sendRequests(List requests)`
`void` `startup()`

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

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

### Field Detail

#### lastSent

    long lastSent

### Constructor Detail

#### PeerConnectionOut

    public PeerConnectionOut(Peer peer,
                     DataOutputStream dout)

### Method Detail

#### startup

    public void startup()

#### run

    public void run()

Continuesly monitors for more outgoing messages that have to be send. Stops if quit is true of an IOException occurs.

Specified by:
  `run` in interface `Runnable`

#### disconnect

    public void disconnect()

#### sendAlive

    void sendAlive()

#### sendChoke

    void sendChoke(boolean choke)

#### sendInterest

    void sendInterest(boolean interest)

#### sendHave

    void sendHave(int piece)

#### sendBitfield

    void sendBitfield(BitField bitfield)

#### retransmitRequests

    void retransmitRequests(List requests)

#### sendRequests

    void sendRequests(List requests)

#### sendRequest

    void sendRequest(Request req)

#### queuedBytes

    int queuedBytes()

#### sendPiece

    void sendPiece(int piece,
                 int begin,
                 int length,
                 DataLoader loader)

Queue a piece message with a callback to load the data from disk when required.

Since:
  0.8.2

#### sendPiece

    void sendPiece(int piece,
                 int begin,
                 int length,
                 byte[] bytes)

Queue a piece message with the data already loaded from disk Also add a timeout. We don't use this anymore.

#### sendCancel

    void sendCancel(Request req)

#### cancelRequestMessages

    void cancelRequestMessages()

Remove all Request messages from the queue

Since:
  0.8.2

#### cancelRequest

    void cancelRequest(int piece,
                     int begin,
                     int length)

#### sendExtension

    void sendExtension(int id,
                     byte[] bytes)

Since:
  0.8.2

#### sendPort

    void sendPort(int port)

Since:
  0.8.4