Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.teleal.cling.transport
Interface Router

All Known Subinterfaces:
  SwitchableRouter

All Known Implementing Classes:
  AndroidWifiSwitchableRouter, MockUpnpService.MockRouter, RouterImpl, SwitchableRouterImpl

    public interface Router

Interface of the network transport layer.

Encapsulates the transport layer and provides methods to the upper layers for sending UPnP stream (HTTP) `StreamRequestMessage`s, sending (UDP) datagram `OutgoingDatagramMessage`s, as well as broadcasting bytes to all LAN participants.

A router also maintains listening sockets and services, for incoming UDP unicast/multicast `IncomingDatagramMessage` and TCP `UpnpStream`s. An implementation of this interface handles these messages, e.g. by selecting and executing the right protocol.

Author:
  Christian Bauer
See Also:
  `ProtocolFactory`

Method Summary
`void` | `broadcast(byte[] bytes)` Call this method to broadcast a UDP message to all hosts on the network.
`List<NetworkAddress>` | `getActiveStreamServers(InetAddress preferredAddress)`
`UpnpServiceConfiguration` | `getConfiguration()`
`NetworkAddressFactory` | `getNetworkAddressFactory()`
`ProtocolFactory` | `getProtocolFactory()`
`void` | `received(IncomingDatagramMessage msg)` This method is called internally by the transport layer when a datagram, either unicast or multicast, has been received.
`void` | `received(UpnpStream stream)` This method is called internally by the transport layer when a TCP stream connection has been made and a response has to be returned to the sender.
`void` | `send(OutgoingDatagramMessage msg)` Call this method to send a UDP datagram message.
`StreamResponseMessage` | `send(StreamRequestMessage msg)` Call this method to send a TCP (HTTP) stream message.
`void` | `shutdown()` Unbinds all sockets and stops all listening threads for datagrams and streams.

Method Detail

### getConfiguration

    UpnpServiceConfiguration getConfiguration()

  Returns:
    The configuration used by this router.

### getProtocolFactory

    ProtocolFactory getProtocolFactory()

  Returns:
    The protocol factory used by this router.

### getNetworkAddressFactory

    NetworkAddressFactory getNetworkAddressFactory()

  Returns:
    The network interface and address binding configuration of this router.

### getActiveStreamServers

    List<NetworkAddress> getActiveStreamServers(InetAddress preferredAddress)

  Parameters:
    `preferredAddress` - A preferred stream server bound address or `null`.
  Returns:
    An empty list if no stream server is currently active, otherwise a single network address if the preferred address is active, or a list of all active bound stream servers.

### shutdown

    void shutdown()

  Unbinds all sockets and stops all listening threads for datagrams and streams.

### received

    void received(IncomingDatagramMessage msg)

  This method is called internally by the transport layer when a datagram, either unicast or multicast, has been received. An implementation of this interface has to handle the received message, e.g. selecting and executing a UPnP protocol. This method should not block until the execution completes, the calling thread should be free to handle the next reception as soon as possible.

  Parameters:
    `msg` - The received datagram message.

### received

    void received(UpnpStream stream)

  This method is called internally by the transport layer when a TCP stream connection has been made and a response has to be returned to the sender. An implementation of this interface has to handle the received stream connection and return a response, e.g. selecting and executing a UPnP protocol. This method should not block until the execution completes, the calling thread should be free to process the next reception as soon as possible. Typically this means starting a new thread of execution in this method.

  Parameters:
    `stream` -

### send

    void send(OutgoingDatagramMessage msg)

  Call this method to send a UDP datagram message.

  Parameters:
    `msg` - The UDP datagram message to send.

### send

    StreamResponseMessage send(StreamRequestMessage msg)

  Call this method to send a TCP (HTTP) stream message.

  Parameters:
    `msg` - The TCP (HTTP) stream message to send.
  Returns:
    The response received from the server.

### broadcast

    void broadcast(byte[] bytes)

  Call this method to broadcast a UDP message to all hosts on the network.

  Parameters:
    `bytes` - The byte payload of the UDP datagram.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2011 Teleal GmbH, Switzerland. All Rights Reserved.