org.apache.http.conn.routing

## Class BasicRouteDirector

- java.lang.Object
- - org.apache.http.conn.routing.BasicRouteDirector

All Implemented Interfaces:
  HttpRouteDirector

    @Contract(threading=IMMUTABLE)
    public class BasicRouteDirector
    extends Object
    implements HttpRouteDirector

Basic `HttpRouteDirector` implementation.

Since:
  4.0

### Field Summary

### Fields inherited from interface org.apache.http.conn.routing.HttpRouteDirector

`COMPLETE, CONNECT_PROXY, CONNECT_TARGET, LAYER_PROTOCOL, TUNNEL_PROXY, TUNNEL_TARGET, UNREACHABLE`

### Constructor Summary

Constructors
Constructor and Description
`BasicRouteDirector()`

### Method Summary

Methods
`protected int` `directStep(RouteInfo plan, RouteInfo fact)` Determines the next step to establish a direct connection.
`protected int` `firstStep(RouteInfo plan)` Determines the first step to establish a route.
`int` `nextStep(RouteInfo plan, RouteInfo fact)` Provides the next step.
`protected int` `proxiedStep(RouteInfo plan, RouteInfo fact)` Determines the next step to establish a connection via proxy.

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

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

### Constructor Detail

#### BasicRouteDirector

    public BasicRouteDirector()

### Method Detail

#### nextStep

    public int nextStep(RouteInfo plan,
               RouteInfo fact)

Provides the next step.

Specified by:
  `nextStep` in interface `HttpRouteDirector`
Parameters:
  `plan` - the planned route
  `fact` - the currently established route, or `null` if nothing is established
Returns:
  one of the constants defined in this class, indicating either the next step to perform, or success, or failure. 0 is for success, a negative value for failure.

#### firstStep

    protected int firstStep(RouteInfo plan)

Determines the first step to establish a route.

Parameters:
  `plan` - the planned route
Returns:
  the first step

#### directStep

    protected int directStep(RouteInfo plan,
                 RouteInfo fact)

Determines the next step to establish a direct connection.

Parameters:
  `plan` - the planned route
  `fact` - the currently established route
Returns:
  one of the constants defined in this class, indicating either the next step to perform, or success, or failure

#### proxiedStep

    protected int proxiedStep(RouteInfo plan,
                  RouteInfo fact)

Determines the next step to establish a connection via proxy.

Parameters:
  `plan` - the planned route
  `fact` - the currently established route
Returns:
  one of the constants defined in this class, indicating either the next step to perform, or success, or failure