DNSOutgoing
Date: 2017-02-10

javax.jmdns.impl

## Class DNSOutgoing

- java.lang.Object
- - javax.jmdns.impl.DNSMessage
  - - javax.jmdns.impl.DNSOutgoing

-     public final class DNSOutgoing
      extends DNSMessage

  An outgoing DNS message.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `DNSOutgoing.MessageOutputStream`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static boolean` | `USE_DOMAIN_NAME_COMPRESSION` This can be used to turn off domain name compression.

    - ### Fields inherited from class javax.jmdns.impl.DNSMessage

      `_additionals, _answers, _authoritativeAnswers, _questions, MULTICAST, UNICAST`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DNSOutgoing(int flags)` Create an outgoing multicast query or response.
    `DNSOutgoing(int flags, boolean multicast)` Create an outgoing query or response.
    `DNSOutgoing(int flags, boolean multicast, int senderUDPPayload)` Create an outgoing query or response.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addAdditionalAnswer(DNSIncoming in, DNSRecord rec)` Add an additional answer to the record.
    `void` | `addAnswer(DNSIncoming in, DNSRecord rec)` Add an answer if it is not suppressed.
    `void` | `addAnswer(DNSRecord rec, long now)` Add an answer to the message.
    `void` | `addAuthorativeAnswer(DNSRecord rec)` Add an authoritative answer to the message.
    `void` | `addQuestion(DNSQuestion rec)` Add a question to the message.
    `int` | `availableSpace()` Return the number of byte available in the message.
    `byte[]` | `data()` Builds the final message buffer to be send and returns it.
    `int` | `getMaxUDPPayload()`
    `boolean` | `isQuery()` Check if the message is a query.
    `java.lang.String` | `toString()`

    - ### Methods inherited from class javax.jmdns.impl.DNSMessage

      `getAdditionals, getAllAnswers, getAnswers, getAuthorities, getFlags, getId, getNumberOfAdditionals, getNumberOfAnswers, getNumberOfAuthorities, getNumberOfQuestions, getQuestions, isEmpty, isMulticast, isResponse, isTruncated, print, setFlags, setId`

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

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

- - ### Field Detail

    - #### USE_DOMAIN_NAME_COMPRESSION

          public static boolean USE_DOMAIN_NAME_COMPRESSION

      This can be used to turn off domain name compression. This was helpful for tracking problems interacting with other mdns implementations.

  - ### Constructor Detail

    - #### DNSOutgoing

          public DNSOutgoing(int flags)

      Create an outgoing multicast query or response.
      Parameters:
        `flags` -

    - #### DNSOutgoing

          public DNSOutgoing(int flags,
                     boolean multicast)

      Create an outgoing query or response.
      Parameters:
        `flags` -
        `multicast` -

    - #### DNSOutgoing

          public DNSOutgoing(int flags,
                     boolean multicast,
                     int senderUDPPayload)

      Create an outgoing query or response.
      Parameters:
        `flags` -
        `multicast` -
        `senderUDPPayload` - The sender's UDP payload size is the number of bytes of the largest UDP payload that can be reassembled and delivered in the sender's network stack.

  - ### Method Detail

    - #### availableSpace

          public int availableSpace()

      Return the number of byte available in the message.
      Returns:
        available space

    - #### addQuestion

          public void addQuestion(DNSQuestion rec)
                           throws java.io.IOException

      Add a question to the message.
      Parameters:
        `rec` -
      Throws:
        `java.io.IOException`

    - #### addAnswer

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

      Add an answer if it is not suppressed.
      Parameters:
        `in` -
        `rec` -
      Throws:
        `java.io.IOException`

    - #### addAnswer

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

      Add an answer to the message.
      Parameters:
        `rec` -
        `now` -
      Throws:
        `java.io.IOException`

    - #### addAuthorativeAnswer

          public void addAuthorativeAnswer(DNSRecord rec)
                                    throws java.io.IOException

      Add an authoritative answer to the message.
      Parameters:
        `rec` -
      Throws:
        `java.io.IOException`

    - #### addAdditionalAnswer

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

      Add an additional answer to the record. Omit if there is no room.
      Parameters:
        `in` -
        `rec` -
      Throws:
        `java.io.IOException`

    - #### data

          public byte[] data()

      Builds the final message buffer to be send and returns it.
      Returns:
        bytes to send.

    - #### isQuery

          public boolean isQuery()

      Description copied from class: `DNSMessage`
      Check if the message is a query.
      Overrides:
        `isQuery` in class `DNSMessage`
      Returns:
        true is the message is a query

    - #### toString

          public java.lang.String toString()

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

    - #### getMaxUDPPayload

          public int getMaxUDPPayload()

      Returns:
        the maxUDPPayload