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

#ifndef P2P_CLIENT_PEER_H__
#define P2P_CLIENT_PEER_H__

#include <stdint.h>

#include <map>
#include <string>

namespace p2p {

namespace client {

// A data structure for carrying information about a peer on the local
// network serving files via HTTP.
struct Peer {
  // The address (IP address or hostname) of the peer.
  std::string address;

  // Set to true if |address| is a literal IPv6 address.
  bool is_ipv6;

  // The TCP port number of the HTTP server.
  uint16_t port;

  // Number of clients currently being served by the peer.
  int num_connections;

  // Identifiers and sizes of the files served by the peer.
  std::map<std::string, size_t> files;
};

}  // namespace client

}  // namespace p2p

#endif  // P2P_CLIENT_PEER_H__
