Package casa.lepton

Interface OppNet

All Superinterfaces:
OppNetEventsSource
All Known Implementing Classes:
OppNetFullyConnected, OppNetGraph, OppNetGraphDGS, OppNetGraphWalk, OppNetProxy

public interface OppNet extends OppNetEventsSource
This interface represents an opportunistic network composed of devices linked by edges representing actual or possible connections between them.
  • Field Details

  • Method Details

    • addNode

      void addNode(String nodeId, String profile)
      Add a new node in the OppNet.
      Parameters:
      nodeId - the new node id.
      profile - the node's profile name (may be null)
    • deleteNode

      void deleteNode(String nodeId)
      Remove a node from the OppNet.
      Parameters:
      nodeId - the id of the node to be deleted.
    • isNode

      boolean isNode(String nodeId)
      Check whether the node exists in the OppNet.
      Parameters:
      nodeId - a node id.
      Returns:
      true if a node having this node id exists in the graph.
    • getNodes

      Collection<String> getNodes()
      Give the nodes in the OppNet.
      Returns:
      a collection of all nodes in the graph.
    • setOnline

      void setOnline(String nodeId, boolean online)
      Change the on/offline status of the node and update edges accordingly.
      Parameters:
      nodeId - a node id.
      online - the new status for the node having this id.
    • isOnline

      boolean isOnline(String nodeId)
      Give the on/offline status of the node.
      Parameters:
      nodeId - a node id.
      Returns:
      the status of the node having this id.
    • setLabel

      void setLabel(String nodeId, String label)
      Change the label of the node
      Parameters:
      nodeId - a node id.
      label - the new label for the node having this id.
    • getLabel

      String getLabel(String nodeId)
      Give the label of the node
      Parameters:
      nodeId - a node id.
      Returns:
      the label for the node having this id.
    • setTag

      void setTag(String nodeId, String tag)
      Set the given tag to the node.
      Parameters:
      nodeId - a node id.
      tag - the new status for the node having this id.
    • getTag

      String getTag(String nodeId)
      Give the tag of the node.
      Parameters:
      nodeId - a node id.
      Returns:
      the tag of the node having this id.
    • addConnectivityType

      void addConnectivityType(String nodeId, String connectivityType)
      Add a new connectivity type for the node and update edges accordingly.
      Parameters:
      nodeId - a node id.
      connectivityType - a connectivity type to be added to this node.
    • removeConnectivityType

      void removeConnectivityType(String nodeId, String connectivityType)
      Remove a connectivity type for the node and update edges accordingly.
      Parameters:
      nodeId - a node id.
      connectivityType - a connectivity type to be removed from this node.
    • setNodeStatus

      void setNodeStatus(String nodeId, String connectivityType, String status)
      Change the status of a node for a given connectivity type.
      Parameters:
      nodeId - a node id.
      connectivityType - a connectivity type.
      status - the new status.
    • getNodeStatus

      String getNodeStatus(String nodeId, String connectivityType)
      Give the status of a node for a given connectivity type.
      Parameters:
      nodeId - a node id.
      connectivityType - a connectivity type.
      Returns:
      the status for this node and connectivity type.
    • setEdgeStatus

      boolean setEdgeStatus(String nodeId1, String nodeId2, String connectivityType, String status)
      Change the status of an edge charaterized by the nodes' ids and the connectivity type. If the edge does not exist, do nothing and change the status of nodes accordingly.
      Parameters:
      nodeId1 - a node id.
      nodeId2 - another node id.
      connectivityType - a connectivity type.
      status - the new edge status.
      Returns:
      true if the status has been changed.
    • getEdgeStatus

      String getEdgeStatus(String nodeId1, String nodeId2, String connectivityType)
      Give the status of an edge charaterized by the nodes' ids and the connectivity type. If the edge does not exist, return null
      Parameters:
      nodeId1 - a node id.
      nodeId2 - another node id.
      connectivityType - a connectivity type.
      Returns:
      the edge status
    • getNeighbors

      Collection<String> getNeighbors(String nodeId, String connectivityType, String edgeStatus)
      Give the neighbors' ids of the node for a given connectivity type and status. If connectivityType is null, give all neighbors for any connectivity type. If status is null, give all neighbors for any status.
      Parameters:
      nodeId - a node id.
      connectivityType - a connectivity type. May be null.
      edgeStatus - an edge status. May be null.
      Returns:
      ids of nodes having edges with the given status and connectivity type.
    • areNeighbors

      boolean areNeighbors(String nodeId1, String nodeId2, String connectivityType, String edgeStatus)
      Returns true if there is an edge with the node for the given connectivity type and status. If connectivityType is null, return true if there is an edge for any connectivity type. If status is null, give all neighbors for any status.
      Parameters:
      nodeId1 - a node id.
      nodeId2 - another node id.
      connectivityType - a connectivity type. May be null.
      edgeStatus - an edge status. May be null.
      Returns:
      return true if the nodes have an edge having the given status and connectivity type.
    • nbNeighbors

      int nbNeighbors(String nodeId, String connectivityType, String edgeStatus)
      Returns the number of neighbors of the node for the given connectivity type and status. If connectivityType is null, returns the number of neighbors for any connectivity type. If status is null, returns the number of neighbors whatever the connectivity status.
      Parameters:
      nodeId - a node id.
      connectivityType - a connectivity type. May be null.
      edgeStatus - an edge status. May be null.
      Returns:
      return true if the nodes have an edge having the given status and connectivity type.
    • makeEdgeId

      String makeEdgeId(String id1, String id2, String connectivityType)
      Give a unique edge id from the given nodes ids and connectivityType in the form "idA-idB:type" where idA = min(id1,id2) and idB = max(id1,id2).
      Parameters:
      id1 - a node id.
      id2 - other node id.
      connectivityType - the connectivity type.
      Returns:
      unique edge id.