Class OOCSISpatial

java.lang.Object
nl.tue.id.oocsi.client.behavior.OOCSISystemCommunicator<nl.tue.id.oocsi.client.behavior.OOCSISpatial.Position>
nl.tue.id.oocsi.client.behavior.OOCSISpatial

public class OOCSISpatial
extends OOCSISystemCommunicator<nl.tue.id.oocsi.client.behavior.OOCSISpatial.Position>
OOCSISpatial is a system-level primitive that allows for routing across a multi-dimensional lattice of positions of different OOCSI clients.
Author:
matsfunk
  • Nested Class Summary

    Nested Classes
    Modifier and Type Class Description
    static interface  OOCSISpatial.DistanceMetric<T>  

    Nested classes/interfaces inherited from class nl.tue.id.oocsi.client.behavior.OOCSISystemCommunicator

    OOCSISystemCommunicator.SystemFilter<K>
  • Field Summary

    Fields
    Modifier and Type Field Description
    java.util.Map<java.lang.String,​nl.tue.id.oocsi.client.behavior.OOCSISpatial.Position> positions  

    Fields inherited from class nl.tue.id.oocsi.client.behavior.OOCSISystemCommunicator

    channelName, client, HANDLE
  • Constructor Summary

    Constructors
    Constructor Description
    OOCSISpatial​(OOCSIClient client, java.lang.String channelName, java.lang.String key, nl.tue.id.oocsi.client.behavior.OOCSISpatial.Position<?> neighborDistance)
    same as all, one value and a distance metric, routing is easy (shortest by direct distance)
  • Method Summary

    Modifier and Type Method Description
    static OOCSISpatial createSpatial​(OOCSIClient client, java.lang.String channelName, java.lang.String key, float myPosition, float neighborDistance)
    create an OOCSISpatial for 1D float positions
    static OOCSISpatial createSpatial​(OOCSIClient client, java.lang.String channelName, java.lang.String key, float myPositionX, float myPositionY, float neighborDistance)
    create an OOCSISpatial for 2D float positions
    java.lang.String getClosestNeighbor()
    returns the handle of the closest neighbor
    java.util.List<java.lang.String> getNeighbors()
    returns the current set of direct neighbors
    MultiMessage neighborCall​(java.lang.String callName)
    return a message container that includes OOCSICalls to all neighbors which can be filled and sent all at once
    MultiMessage neighbors()
    returns a message container that includes messages to all neighbors which can be filled and sent all at once
    java.lang.String routing​(java.lang.String destination)
    returns the handle of the neighbor through which the closest path to the destination can be routed at this moment
    void stop()
    stop participating in this gathering process

    Methods inherited from class nl.tue.id.oocsi.client.behavior.OOCSISystemCommunicator

    addFilter, getHandle, message, message, message, subscribe, triggerHandler, updateFilter

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • positions

      public java.util.Map<java.lang.String,​nl.tue.id.oocsi.client.behavior.OOCSISpatial.Position> positions
  • Constructor Details

    • OOCSISpatial

      public OOCSISpatial​(OOCSIClient client, java.lang.String channelName, java.lang.String key, nl.tue.id.oocsi.client.behavior.OOCSISpatial.Position<?> neighborDistance)
      same as all, one value and a distance metric, routing is easy (shortest by direct distance)
      Parameters:
      client -
      channelName -
      key -
      neighborDistance -
  • Method Details

    • createSpatial

      public static OOCSISpatial createSpatial​(OOCSIClient client, java.lang.String channelName, java.lang.String key, float myPosition, float neighborDistance)
      create an OOCSISpatial for 1D float positions
      Parameters:
      client -
      channelName -
      key -
      myPosition -
      neighborDistance -
      Returns:
    • createSpatial

      public static OOCSISpatial createSpatial​(OOCSIClient client, java.lang.String channelName, java.lang.String key, float myPositionX, float myPositionY, float neighborDistance)
      create an OOCSISpatial for 2D float positions
      Parameters:
      client -
      channelName -
      key -
      myPositionX -
      myPositionY -
      neighborDistance -
      Returns:
    • stop

      public void stop()
      stop participating in this gathering process
    • getNeighbors

      public java.util.List<java.lang.String> getNeighbors()
      returns the current set of direct neighbors
      Returns:
    • neighbors

      public MultiMessage neighbors()
      returns a message container that includes messages to all neighbors which can be filled and sent all at once
      Returns:
    • neighborCall

      public MultiMessage neighborCall​(java.lang.String callName)
      return a message container that includes OOCSICalls to all neighbors which can be filled and sent all at once
      Parameters:
      callName -
      Returns:
    • getClosestNeighbor

      public java.lang.String getClosestNeighbor()
      returns the handle of the closest neighbor
      Returns:
    • routing

      public java.lang.String routing​(java.lang.String destination)
      returns the handle of the neighbor through which the closest path to the destination can be routed at this moment
      Parameters:
      destination -
      Returns: