| /* |
| * 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; |
| } |
| } |