diff options
Diffstat (limited to 'core/java/android/net/LocalSocketAddress.java')
-rw-r--r-- | core/java/android/net/LocalSocketAddress.java | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/core/java/android/net/LocalSocketAddress.java b/core/java/android/net/LocalSocketAddress.java new file mode 100644 index 0000000..8265b85 --- /dev/null +++ b/core/java/android/net/LocalSocketAddress.java @@ -0,0 +1,100 @@ +/* + * Copyright (C) 2007 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.net; + +/** + * A UNIX-domain (AF_LOCAL) socket address. For use with + * android.net.LocalSocket and android.net.LocalServerSocket. + * + * On the Android system, these names refer to names in the Linux + * abstract (non-filesystem) UNIX domain namespace. + */ +public class LocalSocketAddress +{ + /** + * The namespace that this address exists in. See also + * include/cutils/sockets.h ANDROID_SOCKET_NAMESPACE_* + */ + public enum Namespace { + /** A socket in the Linux abstract namespace */ + ABSTRACT(0), + /** + * A socket in the Android reserved namespace in /dev/socket. + * Only the init process may create a socket here. + */ + RESERVED(1), + /** + * A socket named with a normal filesystem path. + */ + FILESYSTEM(2); + + /** The id matches with a #define in include/cutils/sockets.h */ + private int id; + Namespace (int id) { + this.id = id; + } + + /** + * @return int constant shared with native code + */ + /*package*/ int getId() { + return id; + } + } + + private final String name; + private final Namespace namespace; + + /** + * Creates an instance with a given name. + * + * @param name non-null name + * @param namespace namespace the name should be created in. + */ + public LocalSocketAddress(String name, Namespace namespace) { + this.name = name; + this.namespace = namespace; + } + + /** + * Creates an instance with a given name in the {@link Namespace#ABSTRACT} + * namespace + * + * @param name non-null name + */ + public LocalSocketAddress(String name) { + this(name,Namespace.ABSTRACT); + } + + /** + * Retrieves the string name of this address + * @return string name + */ + public String getName() + { + return name; + } + + /** + * Returns the namespace used by this address. + * + * @return non-null a namespace + */ + public Namespace getNamespace() { + return namespace; + } +} |