uwcse.location
Class FusionClientService

java.lang.Object
  |
  +--com.intel.research.rain.Service
        |
        +--uwcse.location.LocationService
              |
              +--uwcse.location.FusionClientService
All Implemented Interfaces:
MessageHandler
Direct Known Subclasses:
ArrangementService, DisplayService, FusionAdmin, PersonTracker, SensorDriver

public abstract class FusionClientService
extends LocationService

A FusionClientService is an abstract class implementing convenience interfaces to the various fusion service interactions over Rain.

Version:
$Revision: 1.11 $
Author:
Jeffrey Hightower

Nested Class Summary
 
Nested classes inherited from class uwcse.location.LocationService
LocationService.RediscoverServices
 
Field Summary
protected static String FUSION_DISCOVERY_QUERY
           
protected  Set m_fusionServiceIDSet
           
 
Fields inherited from class uwcse.location.LocationService
CONFIG_FILENAME, MESSAGE_ELEMENT, MESSAGE_EXTENSION, RPC_ELEMENT, RPC_EXCEPTION_ELEMENT, RPC_EXTENSION, RPC_RESULT_ELEMENT
 
Constructor Summary
FusionClientService()
          Create a new FusionService client.
FusionClientService(ServiceID fusionServiceID)
          Create a new FusionService client for the given fusion service.
 
Method Summary
 LocationRpcResult callFusionServiceRpc(LocationRpc rpc, long timeout)
          Helper method to call an Rpc on an aribtrary FusionService ServiceID drawn from currently known set and block until receiving a result or an exception.
 Set getFusionServiceIDSet()
          Return an unmodifiable Set of the cached discovered FusionService ServiceIDs.
protected  void withdraw()
          Supplement the inherited behavior to clear the list of FusionService IDs and shutdown the heartbeat discovery thread when withdrawing from Rain.
 
Methods inherited from class uwcse.location.LocationService
addObject, callLocationRpc, correctedTimeMillis, getObject, getSysclockError, handleTerminalCommand, multicastLocationMsg, multicastLocationMsgs, processLocationMsg, processLocationRpc, runTerminalCommandLoop, sendLocationMsg, sendLocationMsgs, setDescription
 
Methods inherited from class com.intel.research.rain.Service
getDaemon, getDispatcher, getServiceID, process, receive, setDaemon
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

FUSION_DISCOVERY_QUERY

protected static final String FUSION_DISCOVERY_QUERY

m_fusionServiceIDSet

protected Set m_fusionServiceIDSet
Constructor Detail

FusionClientService

public FusionClientService()
                    throws RainException,
                           LocationException
Create a new FusionService client.

Throws:
RainException
LocationException

FusionClientService

public FusionClientService(ServiceID fusionServiceID)
                    throws RainException,
                           LocationException
Create a new FusionService client for the given fusion service. If the specified FusionService is null then discovery is used to provide late-binding to an existing fusion service.

Throws:
RainException
LocationException
Method Detail

callFusionServiceRpc

public final LocationRpcResult callFusionServiceRpc(LocationRpc rpc,
                                                    long timeout)
                                             throws LocationRpcException
Helper method to call an Rpc on an aribtrary FusionService ServiceID drawn from currently known set and block until receiving a result or an exception. The rpc must not be null.

Parameters:
rpc - the remote procedure call to run
timeout - the timeout out in milliseconds to wait for a reply after which an exception will be thorwn
Throws:
LocationRpcException - when an error occurs or an exception is thrown by the remote service. The chained cause is the exception thrown on the remote service.
See Also:
Throwable.getCause(), LocationService.callLocationRpc(ServiceID,LocationRpc,long)

withdraw

protected void withdraw()
Supplement the inherited behavior to clear the list of FusionService IDs and shutdown the heartbeat discovery thread when withdrawing from Rain.

Overrides:
withdraw in class LocationService

getFusionServiceIDSet

public final Set getFusionServiceIDSet()
Return an unmodifiable Set of the cached discovered FusionService ServiceIDs.

See Also:
ServiceID


This documentation is for the Location Stack v0.8. The latest distribution, the documentation, and the list of contributors to the Location Stack can always be found at http://portolano.cs.washington.edu/projects/location/

© Copyright 2004 University of Washington CSE