101 lines
2.6 KiB
Java
101 lines
2.6 KiB
Java
/*
|
|
* 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;
|
|
}
|
|
}
|