From 47f8f0fa70343ea0d150e644f4109fb2d1185044 Mon Sep 17 00:00:00 2001 From: Chia-chi Yeh Date: Thu, 12 May 2011 16:23:44 -0700 Subject: [PATCH] Add a method to create ParcelFileDescriptors from DatagramSockets. Change-Id: I16dddb2395628657b140b53a1b2fee5f311b049a --- api/current.txt | 1 + core/java/android/os/ParcelFileDescriptor.java | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/api/current.txt b/api/current.txt index 12fa844d78bd8..83cbd7a8345a8 100644 --- a/api/current.txt +++ b/api/current.txt @@ -13916,6 +13916,7 @@ package android.os { method public int describeContents(); method public int detachFd(); method public static android.os.ParcelFileDescriptor dup(java.io.FileDescriptor) throws java.io.IOException; + method public static android.os.ParcelFileDescriptor fromDatagramSocket(java.net.DatagramSocket); method public static android.os.ParcelFileDescriptor fromSocket(java.net.Socket); method public int getFd(); method public java.io.FileDescriptor getFileDescriptor(); diff --git a/core/java/android/os/ParcelFileDescriptor.java b/core/java/android/os/ParcelFileDescriptor.java index f7661b61f5394..727fcca019d35 100644 --- a/core/java/android/os/ParcelFileDescriptor.java +++ b/core/java/android/os/ParcelFileDescriptor.java @@ -21,6 +21,7 @@ import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; +import java.net.DatagramSocket; import java.net.Socket; /** @@ -141,6 +142,20 @@ public class ParcelFileDescriptor implements Parcelable { return fd != null ? new ParcelFileDescriptor(fd) : null; } + /** + * Create a new ParcelFileDescriptor from the specified DatagramSocket. + * + * @param datagramSocket The DatagramSocket whose FileDescriptor is used + * to create a new ParcelFileDescriptor. + * + * @return A new ParcelFileDescriptor with the FileDescriptor of the + * specified DatagramSocket. + */ + public static ParcelFileDescriptor fromDatagramSocket(DatagramSocket datagramSocket) { + FileDescriptor fd = datagramSocket.getFileDescriptor$(); + return fd != null ? new ParcelFileDescriptor(fd) : null; + } + /** * Create two ParcelFileDescriptors structured as a data pipe. The first * ParcelFileDescriptor in the returned array is the read side; the second