DNSTask
Date: 2017-02-10

javax.jmdns.impl.tasks

## Class DNSTask

- java.lang.Object
- - java.util.TimerTask
  - - javax.jmdns.impl.tasks.DNSTask

- All Implemented Interfaces:
    java.lang.Runnable
  Direct Known Subclasses:
    DNSResolverTask, DNSStateTask, RecordReaper, Responder

      public abstract class DNSTask
      extends java.util.TimerTask

  This is the root class for all task scheduled by the timer in JmDNS.

- - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `DNSTask(JmDNSImpl jmDNSImpl)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `DNSOutgoing` | `addAdditionalAnswer(DNSOutgoing out, DNSIncoming in, DNSRecord rec)` Add an additional answer to the record.
    `DNSOutgoing` | `addAnswer(DNSOutgoing out, DNSIncoming in, DNSRecord rec)` Add an answer if it is not suppressed.
    `DNSOutgoing` | `addAnswer(DNSOutgoing out, DNSRecord rec, long now)` Add an answer to the message.
    `DNSOutgoing` | `addAuthoritativeAnswer(DNSOutgoing out, DNSRecord rec)` Add an authoritative answer to the message.
    `DNSOutgoing` | `addQuestion(DNSOutgoing out, DNSQuestion rec)` Add a question to the message.
    `JmDNSImpl` | `getDns()` Return the DNS associated with this task.
    `abstract java.lang.String` | `getName()` Return this task name.
    `abstract void` | `start(java.util.Timer timer)` Start this task.
    `java.lang.String` | `toString()`

    - ### Methods inherited from class java.util.TimerTask

      `cancel, run, scheduledExecutionTime`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### DNSTask

          protected DNSTask(JmDNSImpl jmDNSImpl)

      Parameters:
        `jmDNSImpl` -

  - ### Method Detail

    - #### getDns

          public JmDNSImpl getDns()

      Return the DNS associated with this task.
      Returns:
        associated DNS

    - #### start

          public abstract void start(java.util.Timer timer)

      Start this task.
      Parameters:
        `timer` - task timer.

    - #### getName

          public abstract java.lang.String getName()

      Return this task name.
      Returns:
        task name

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### addQuestion

          public DNSOutgoing addQuestion(DNSOutgoing out,
                                DNSQuestion rec)
                                  throws java.io.IOException

      Add a question to the message.
      Parameters:
        `out` - outgoing message
        `rec` - DNS question
      Returns:
        outgoing message for the next question
      Throws:
        `java.io.IOException`

    - #### addAnswer

          public DNSOutgoing addAnswer(DNSOutgoing out,
                              DNSIncoming in,
                              DNSRecord rec)
                                throws java.io.IOException

      Add an answer if it is not suppressed.
      Parameters:
        `out` - outgoing message
        `in` - incoming request
        `rec` - DNS record answer
      Returns:
        outgoing message for the next answer
      Throws:
        `java.io.IOException`

    - #### addAnswer

          public DNSOutgoing addAnswer(DNSOutgoing out,
                              DNSRecord rec,
                              long now)
                                throws java.io.IOException

      Add an answer to the message.
      Parameters:
        `out` - outgoing message
        `rec` - DNS record answer
        `now` -
      Returns:
        outgoing message for the next answer
      Throws:
        `java.io.IOException`

    - #### addAuthoritativeAnswer

          public DNSOutgoing addAuthoritativeAnswer(DNSOutgoing out,
                                           DNSRecord rec)
                                             throws java.io.IOException

      Add an authoritative answer to the message.
      Parameters:
        `out` - outgoing message
        `rec` - DNS record answer
      Returns:
        outgoing message for the next answer
      Throws:
        `java.io.IOException`

    - #### addAdditionalAnswer

          public DNSOutgoing addAdditionalAnswer(DNSOutgoing out,
                                        DNSIncoming in,
                                        DNSRecord rec)
                                          throws java.io.IOException

      Add an additional answer to the record. Omit if there is no room.
      Parameters:
        `out` - outgoing message
        `in` - incoming request
        `rec` - DNS record answer
      Returns:
        outgoing message for the next answer
      Throws:
        `java.io.IOException`