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.protocol.async
Class ReceivingSearch

    java.lang.Object
      org.teleal.cling.protocol.ReceivingAsync<IncomingSearchRequest>
          org.teleal.cling.protocol.async.ReceivingSearch

All Implemented Interfaces:
  Runnable

    public class ReceivingSearch

extends ReceivingAsync<IncomingSearchRequest>

Handles reception of search requests, responds for local registered devices.

Waits a random time between 0 and the requested MX (maximum 120 seconds) before executing. Only waits if there are actually any registered local devices.

Extracts the search target, builds and sends the dozens of messages required by the UPnP specification, depending on the search target and what local devices and services are found in the `Registry`.

Author:
  Christian Bauer

Field Summary
`protected Random` | `randomGenerator`

Constructor Summary
`ReceivingSearch(UpnpService upnpService, IncomingDatagramMessage<UpnpRequest> inputMessage)`

Method Summary
`protected List<OutgoingSearchResponse>` | `createDeviceMessages(LocalDevice device, NetworkAddress activeStreamServer)`
`protected List<OutgoingSearchResponse>` | `createServiceTypeMessages(LocalDevice device, NetworkAddress activeStreamServer)`
`protected void` | `execute()`
`protected Location` | `getDescriptorLocation(NetworkAddress activeStreamServer, LocalDevice device)`
`protected void` | `sendResponses(UpnpHeader searchTarget, NetworkAddress activeStreamServer)`
`protected void` | `sendSearchResponseAll(NetworkAddress activeStreamServer)`
`protected void` | `sendSearchResponseDeviceType(DeviceType deviceType, NetworkAddress activeStreamServer)`
`protected void` | `sendSearchResponseRootDevices(NetworkAddress activeStreamServer)`
`protected void` | `sendSearchResponseServiceType(ServiceType serviceType, NetworkAddress activeStreamServer)`
`protected void` | `sendSearchResponseUDN(UDN udn, NetworkAddress activeStreamServer)`
`protected boolean` | `waitBeforeExecution()` Provides an opportunity to pause before executing the protocol.

Methods inherited from class org.teleal.cling.protocol.ReceivingAsync
`getFirstHeader, getInputMessage, getUpnpService, run, toString`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### randomGenerator

    protected final Random randomGenerator

Constructor Detail

### ReceivingSearch

    public ReceivingSearch(UpnpService upnpService,
                           IncomingDatagramMessage<UpnpRequest> inputMessage)

Method Detail

### execute

    protected void execute()

  Specified by:
    `execute` in class `ReceivingAsync<IncomingSearchRequest>`

### waitBeforeExecution

    protected boolean waitBeforeExecution()
                                   throws InterruptedException

  Description copied from class: `ReceivingAsync`
  Provides an opportunity to pause before executing the protocol.

  Overrides:
    `waitBeforeExecution` in class `ReceivingAsync<IncomingSearchRequest>`
  Returns:
    `true` (default) if execution should continue after waiting.
  Throws:
    `InterruptedException` - If waiting has been interrupted, which also stops execution.

### sendResponses

    protected void sendResponses(UpnpHeader searchTarget,
                                 NetworkAddress activeStreamServer)

### sendSearchResponseAll

    protected void sendSearchResponseAll(NetworkAddress activeStreamServer)

### createDeviceMessages

    protected List<OutgoingSearchResponse> createDeviceMessages(LocalDevice device,
                                                                NetworkAddress activeStreamServer)

### createServiceTypeMessages

    protected List<OutgoingSearchResponse> createServiceTypeMessages(LocalDevice device,
                                                                     NetworkAddress activeStreamServer)

### sendSearchResponseRootDevices

    protected void sendSearchResponseRootDevices(NetworkAddress activeStreamServer)

### sendSearchResponseUDN

    protected void sendSearchResponseUDN(UDN udn,
                                         NetworkAddress activeStreamServer)

### sendSearchResponseDeviceType

    protected void sendSearchResponseDeviceType(DeviceType deviceType,
                                                NetworkAddress activeStreamServer)

### sendSearchResponseServiceType

    protected void sendSearchResponseServiceType(ServiceType serviceType,
                                                 NetworkAddress activeStreamServer)

### getDescriptorLocation

    protected Location getDescriptorLocation(NetworkAddress activeStreamServer,
                                             LocalDevice device)

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.