## com.bbn.openmap.layer.link
Class LinkServer

    java.lang.Object
      java.lang.Thread
          com.bbn.openmap.layer.link.LinkServer

All Implemented Interfaces:
  LinkPropertiesConstants, java.lang.Runnable

Direct Known Subclasses:
  ShapeLinkServer, TestLinkServer

public class LinkServer
extends java.lang.Thread
implements LinkPropertiesConstants

The Link Server is the object communicating with the LinkLayer. It is launched within its own thread to handle a specific client. If the server is accessing a database or an object that many LinkServers may be contacting, You'll need to ensure some amount of thread safety for the data if the data is being modified by the LinkServer.

Field Summary
`protected Link` `link` The Link to use to talk to the client.

Fields inherited from class java.lang.Thread
`MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY`

Fields inherited from interface com.bbn.openmap.layer.link.LinkPropertiesConstants

`LPC_BACKWARD_DIAG_PATTERN, LPC_CENTER_LAT, LPC_CENTER_LONG, LPC_CLEAR_PROPERTIES, LPC_CLEAR_PROPERTIES_CHAR, LPC_CROSS_PATTERN, LPC_DASH, LPC_DASH_DOT, LPC_DASH_DOT_DOT, LPC_DIAG_CROSS_PATTERN, LPC_DOT, LPC_FILLCOLOR, LPC_FILLPATTERN, LPC_FORWARD_DIAG_PATTERN, LPC_GRAPHICID, LPC_HEIGHT, LPC_HIGHLIGHTCOLOR, LPC_HORIZONTAL_PATTERN, LPC_HTML, LPC_INFO, LPC_LATMAX, LPC_LATMIN, LPC_LINECOLOR, LPC_LINESTYLE, LPC_LINEWIDTH, LPC_LINKRASTERIMAGEURL, LPC_LINKROTATION, LPC_LINKTEXTBASELINE, LPC_LINKTEXTFONT, LPC_LINKTEXTSTRING, LPC_LONG_DASH, LPC_LONMAX, LPC_LONMIN, LPC_MESSAGE, LPC_OLD_FILLCOLOR, LPC_OLD_FILLPATTERN, LPC_OLD_HIGHLIGHTCOLOR, LPC_OLD_LINECOLOR, LPC_OLD_LINESTYLE, LPC_OLD_LINEWIDTH, LPC_OLD_LINKTEXTFONT, LPC_OLD_LINKTEXTSTRING, LPC_PROJECTION, LPC_PROPERY_MANAGEMENT_POLICY, LPC_PROPERY_MANAGEMENT_POLICY_CHAR, LPC_REUSE_PROPERTIES, LPC_REUSE_PROPERTIES_CHAR, LPC_SCALE, LPC_SOLID, LPC_SOLID_PATTERN, LPC_TIME, LPC_URL, LPC_VERTICAL_PATTERN, LPC_WIDTH`

Constructor Summary
`LinkServer()` Constructor used by the LinkServerStarter in using this class as a LinkServerFactory.
`LinkServer(java.net.Socket s)` Create child thread that will handle the client.

Method Summary
`void` `getRectangle(LinkMapRequest query, Link link)` An example of how to handle GraphicsLinkQueries.
`void` `handleClient()` handleClient is a method that listens to the link to a client, and responds to requests that are made.
`void` `handleGesture(LinkActionRequest lar, Link link)` An example of how to handle LinkActionRequest.
`void` `huh(Link link)` If a request is not handled, or not understood, reply with this.
`void` `run()` From the Runnable interface.

Methods inherited from class java.lang.Thread
`activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getContextClassLoader, getName, getPriority, getThreadGroup, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setName, setPriority, sleep, sleep, start, stop, stop, suspend, toString, yield`

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

Field Detail

### link

    protected Link link

  The Link to use to talk to the client.

Constructor Detail

### LinkServer

    public LinkServer()

  Constructor used by the LinkServerStarter in using this class as a LinkServerFactory.

### LinkServer

    public LinkServer(java.net.Socket s)

  Create child thread that will handle the client.

Parameters:
  `s` - the socket to communicate over.

Method Detail

### run

    public void run()

  From the Runnable interface. The thread starts here...

  Specified by:
    `run` in interface `java.lang.Runnable`

### handleClient

    public void handleClient()
                      throws java.io.IOException

  handleClient is a method that listens to the link to a client, and responds to requests that are made.

  Throws:
    `java.io.IOException`

### huh

    public void huh(Link link)
             throws java.io.IOException

  If a request is not handled, or not understood, reply with this.

  Throws:
    `java.io.IOException`

### getRectangle

    public void getRectangle(LinkMapRequest query,
                             Link link)
                      throws java.io.IOException

  An example of how to handle GraphicsLinkQueries.

  Parameters:
    `query` - the GraphicsLinkQuery, so you can get more information about the parameters of the map screen of the client.
    `link` - the link to communicate the response back to the client.
  Throws:
    `java.io.IOException`

### handleGesture

    public void handleGesture(LinkActionRequest lar,
                              Link link)
                       throws java.io.IOException

  An example of how to handle LinkActionRequest.

  Parameters:
    `lar` - the LinkActionRequest, so you can get more information about the parameters of the gesture frome the client.
    `link` - the link to communicate the response back to the client.
  Throws:
    `java.io.IOException`

Copyright (C) BBNT Solutions LLC; See http://openmap.bbn.com/ for details