• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef NET_UDP_DATAGRAM_SOCKET_H_
6 #define NET_UDP_DATAGRAM_SOCKET_H_
7 
8 #include "net/base/net_export.h"
9 
10 namespace net {
11 
12 class BoundNetLog;
13 class IPEndPoint;
14 
15 // A datagram socket is an interface to a protocol which exchanges
16 // datagrams, like UDP.
17 class NET_EXPORT_PRIVATE DatagramSocket {
18  public:
19   // Type of source port binding to use.
20   enum BindType {
21     RANDOM_BIND,
22     DEFAULT_BIND,
23   };
24 
~DatagramSocket()25   virtual ~DatagramSocket() {}
26 
27   // Close the socket.
28   virtual void Close() = 0;
29 
30   // Copy the remote udp address into |address| and return a network error code.
31   virtual int GetPeerAddress(IPEndPoint* address) const = 0;
32 
33   // Copy the local udp address into |address| and return a network error code.
34   // (similar to getsockname)
35   virtual int GetLocalAddress(IPEndPoint* address) const = 0;
36 
37   // Gets the NetLog for this socket.
38   virtual const BoundNetLog& NetLog() const = 0;
39 };
40 
41 }  // namespace net
42 
43 #endif  // NET_UDP_DATAGRAM_SOCKET_H_
44