// Copyright 2014 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.

[DartPackage="mojo_services"]
module mojo;

enum NetAddressFamily {
  UNSPECIFIED,
  IPV4,
  IPV6
};

struct NetAddressIPv4 {
  // The port number. This is in the local machine's endianness.
  uint16 port;

  // The address is expressed in network byte order, so the most significant
  // byte ("127" in the address "127.0.0.1") will be at index 0.
  array<uint8, 4> addr;
};

// All members are expressed in network byte order.
struct NetAddressIPv6 {
  // The port number. This is in the local machine's endianness.
  uint16 port;

  // The address is expressed in network byte order, so the most significant
  // byte is at index 0.
  array<uint8, 16> addr;
};

struct NetAddress {
  NetAddressFamily family = UNSPECIFIED;

  // At most one of the following fields is non-NULL depending on the value of
  // |family|.
  NetAddressIPv4? ipv4;
  NetAddressIPv6? ipv6;
};
