summaryrefslogtreecommitdiff
path: root/chromium/net/udp/datagram_socket.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/net/udp/datagram_socket.h')
-rw-r--r--chromium/net/udp/datagram_socket.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/chromium/net/udp/datagram_socket.h b/chromium/net/udp/datagram_socket.h
new file mode 100644
index 00000000000..f0e9fa10baa
--- /dev/null
+++ b/chromium/net/udp/datagram_socket.h
@@ -0,0 +1,43 @@
+// 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_UDP_DATAGRAM_SOCKET_H_
+#define NET_UDP_DATAGRAM_SOCKET_H_
+
+#include "net/base/net_export.h"
+
+namespace net {
+
+class BoundNetLog;
+class IPEndPoint;
+
+// A datagram socket is an interface to a protocol which exchanges
+// datagrams, like UDP.
+class NET_EXPORT_PRIVATE DatagramSocket {
+ public:
+ // Type of source port binding to use.
+ enum BindType {
+ RANDOM_BIND,
+ DEFAULT_BIND,
+ };
+
+ virtual ~DatagramSocket() {}
+
+ // Close the socket.
+ virtual void Close() = 0;
+
+ // Copy the remote udp address into |address| and return a network error code.
+ virtual int GetPeerAddress(IPEndPoint* address) const = 0;
+
+ // Copy the local udp address into |address| and return a network error code.
+ // (similar to getsockname)
+ virtual int GetLocalAddress(IPEndPoint* address) const = 0;
+
+ // Gets the NetLog for this socket.
+ virtual const BoundNetLog& NetLog() const = 0;
+};
+
+} // namespace net
+
+#endif // NET_UDP_DATAGRAM_SOCKET_H_