// Copyright (c) 2011 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.

#ifndef NET_SOCKET_UDP_SOCKET_H_
#define NET_SOCKET_UDP_SOCKET_H_

#include "build/build_config.h"

#if defined(OS_WIN)
#include "net/socket/udp_socket_win.h"
#elif defined(OS_POSIX) || defined(OS_FUCHSIA)
#include "net/socket/udp_socket_posix.h"
#endif

namespace net {

// UDPSocket
// Accessor API for a UDP socket in either client or server form.
//
// Client form:
// In this case, we're connecting to a specific server, so the client will
// usually use:
//       Open(address_family)  // Open a socket.
//       Connect(address)      // Connect to a UDP server
//       Read/Write            // Reads/Writes all go to a single destination
//
// Server form:
// In this case, we want to read/write to many clients which are connecting
// to this server.  First the server 'binds' to an addres, then we read from
// clients and write responses to them.
// Example:
//       Open(address_family)  // Open a socket.
//       Bind(address/port)    // Binds to port for reading from clients
//       RecvFrom/SendTo       // Each read can come from a different client
//                             // Writes need to be directed to a specific
//                             // address.
#if defined(OS_WIN)
typedef UDPSocketWin UDPSocket;
#elif defined(OS_POSIX) || defined(OS_FUCHSIA)
typedef UDPSocketPosix UDPSocket;
#endif

}  // namespace net

#endif  // NET_SOCKET_UDP_SOCKET_H_
