// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Use the <code>chrome.mdns</code> API to discover services over mDNS.
// This comprises a subset of the features of the NSD spec:
// http://www.w3.org/TR/discovery-api/
namespace mdns {

  // Represents a mDNS/DNS-SD service.
  dictionary MDnsService {
    // The service name of an mDNS advertised service,
    // <instance_name>.<service_type>.
    DOMString serviceName;

    // The host:port pair of an mDNS advertised service.
    DOMString serviceHostPort;

    // The IP address of an mDNS advertised service.
    DOMString ipAddress;

    // Metadata for an mDNS advertised service.
    DOMString[] serviceData;
  };

  interface Events {
    // Event fired to inform clients of the current complete set of known
    // available services. Clients should only need to store the list from the
    // most recent event. The service type that the extension is interested in
    // discovering should be specified as the event filter with the
    // 'serviceType' key. Not specifying an event filter will not start any
    // discovery listeners.
    [supportsFilters=true] static void onServiceList(MDnsService[] services);
  };
};