Class DNSStateTask

java.lang.Object
java.util.TimerTask
javax.jmdns.impl.tasks.DNSTask
javax.jmdns.impl.tasks.state.DNSStateTask
All Implemented Interfaces:
Runnable
Direct Known Subclasses:
Announcer, Canceler, Prober, Renewer

public abstract class DNSStateTask extends DNSTask
This is the root class for all state tasks. These tasks work with objects that implements the DNSStatefulObject interface and therefore participate in the state machine.
  • Field Details

    • logger

      static org.slf4j.Logger logger
    • _ttl

      private final int _ttl
      By setting a 0 ttl we effectively expire the record.
    • _defaultTTL

      private static int _defaultTTL
    • _taskState

      private DNSState _taskState
      The state of the task.
  • Constructor Details

    • DNSStateTask

      public DNSStateTask(JmDNSImpl jmDNSImpl, int ttl)
      Parameters:
      jmDNSImpl -
      ttl -
  • Method Details

    • getTaskDescription

      public abstract String getTaskDescription()
    • defaultTTL

      public static int defaultTTL()
    • setDefaultTTL

      public static void setDefaultTTL(int value)
      For testing only do not use in production.
      Parameters:
      value -
    • getTTL

      public int getTTL()
      Returns:
      the ttl
    • associate

      protected void associate(DNSState state)
      Associate the DNS host and the service infos with this task if not already associated and in the same state.
      Parameters:
      state - target state
    • removeAssociation

      protected void removeAssociation()
      Remove the DNS host and service info association with this task.
    • run

      public void run()
      Specified by:
      run in interface Runnable
      Specified by:
      run in class TimerTask
    • checkRunCondition

      protected abstract boolean checkRunCondition()
    • buildOutgoingForDNS

      protected abstract DNSOutgoing buildOutgoingForDNS(DNSOutgoing out) throws IOException
      Throws:
      IOException
    • buildOutgoingForInfo

      protected abstract DNSOutgoing buildOutgoingForInfo(ServiceInfoImpl info, DNSOutgoing out) throws IOException
      Throws:
      IOException
    • createOugoing

      protected abstract DNSOutgoing createOugoing()
    • advanceObjectsState

      protected void advanceObjectsState(List<DNSStatefulObject> list)
    • recoverTask

      protected abstract void recoverTask(Throwable e)
    • advanceTask

      protected abstract void advanceTask()
    • getTaskState

      protected DNSState getTaskState()
      Returns:
      the taskState
    • setTaskState

      protected void setTaskState(DNSState taskState)
      Parameters:
      taskState - the taskState to set