View Javadoc
1   /*
2    * junixsocket
3    *
4    * Copyright 2009-2024 Christian Kohlschütter
5    *
6    * Licensed under the Apache License, Version 2.0 (the "License");
7    * you may not use this file except in compliance with the License.
8    * You may obtain a copy of the License at
9    *
10   *     http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  package org.newsclub.net.unix;
19  
20  /**
21   * Describes junixsocket capabilities the current environment (system platform, native library,
22   * etc.) may or may not support.
23   *
24   * You can check whether your environment supports a given capability by calling
25   * {@link AFUNIXSocket#supports(AFUNIXSocketCapability)}.
26   *
27   * This enum is deprecated. Use {@link AFSocketCapability} instead.
28   *
29   * @see AFSocketCapability
30   */
31  @Deprecated
32  public enum AFUNIXSocketCapability {
33    // see org_newsclub_net_unix_NativeUnixSocket.c in junixsocket-native
34  
35    /** Socket supports retrieving peer credentials. */
36    CAPABILITY_PEER_CREDENTIALS(0),
37  
38    /** Socket supports sending and receiving ancillary messages. */
39    CAPABILITY_ANCILLARY_MESSAGES(1),
40  
41    /** Socket supports passing file descriptors via ancillary messages. */
42    CAPABILITY_FILE_DESCRIPTORS(2),
43  
44    /** Socket addressing supports the abstract namespace (Linux). */
45    CAPABILITY_ABSTRACT_NAMESPACE(3),
46  
47    /** Support for AF_UNIX datagrams (not on Windows yet). */
48    CAPABILITY_DATAGRAMS(4),
49  
50    /**
51     * A pair of interconnected sockets can be created natively.
52     *
53     * This currently not possible on Windows, but instead emulated via anonymous AF_INET ports when
54     * you use {@link AFUNIXSocketPair}.
55     */
56    CAPABILITY_NATIVE_SOCKETPAIR(5),
57  
58    ; // end of list
59  
60    private final int bitmask;
61  
62    AFUNIXSocketCapability(int bit) {
63      this.bitmask = 1 << bit;
64    }
65  
66    int getBitmask() {
67      return bitmask;
68    }
69  }