Home / Class/ SelectedSelectionKeySet Class — netty Architecture

SelectedSelectionKeySet Class — netty Architecture

Architecture documentation for the SelectedSelectionKeySet class in SelectedSelectionKeySet.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  1b7e8a83_4925_ec6c_0515_4ee26c60a2b9["SelectedSelectionKeySet"]
  66c1b9e5_8741_7c71_4442_9da3c020f4a9["SelectedSelectionKeySet.java"]
  1b7e8a83_4925_ec6c_0515_4ee26c60a2b9 -->|defined in| 66c1b9e5_8741_7c71_4442_9da3c020f4a9
  6ee5ec3c_96b3_94ef_540a_85281f70798f["SelectedSelectionKeySet()"]
  1b7e8a83_4925_ec6c_0515_4ee26c60a2b9 -->|method| 6ee5ec3c_96b3_94ef_540a_85281f70798f
  6a676632_5100_880a_2b33_fbf62456ca92["add()"]
  1b7e8a83_4925_ec6c_0515_4ee26c60a2b9 -->|method| 6a676632_5100_880a_2b33_fbf62456ca92
  4a67edcd_caaf_61c3_b439_56d370a4248c["remove()"]
  1b7e8a83_4925_ec6c_0515_4ee26c60a2b9 -->|method| 4a67edcd_caaf_61c3_b439_56d370a4248c
  7601bdd4_f665_7ccb_a56b_6b28a55eb8e0["contains()"]
  1b7e8a83_4925_ec6c_0515_4ee26c60a2b9 -->|method| 7601bdd4_f665_7ccb_a56b_6b28a55eb8e0
  51a9fb41_c13e_d12d_8889_7f0e7ed03dbc["size()"]
  1b7e8a83_4925_ec6c_0515_4ee26c60a2b9 -->|method| 51a9fb41_c13e_d12d_8889_7f0e7ed03dbc
  693054f3_9ba9_1ec3_6e99_51c132af9dbd["iterator()"]
  1b7e8a83_4925_ec6c_0515_4ee26c60a2b9 -->|method| 693054f3_9ba9_1ec3_6e99_51c132af9dbd
  b5559805_0fe1_035f_f7d2_947f0db85b43["reset()"]
  1b7e8a83_4925_ec6c_0515_4ee26c60a2b9 -->|method| b5559805_0fe1_035f_f7d2_947f0db85b43
  50ae6b48_680a_7a71_ffd6_a6861462b9f2["increaseCapacity()"]
  1b7e8a83_4925_ec6c_0515_4ee26c60a2b9 -->|method| 50ae6b48_680a_7a71_ffd6_a6861462b9f2

Relationship Graph

Source Code

transport/src/main/java/io/netty/channel/nio/SelectedSelectionKeySet.java lines 25–109

final class SelectedSelectionKeySet extends AbstractSet<SelectionKey> {

    SelectionKey[] keys;
    int size;

    SelectedSelectionKeySet() {
        keys = new SelectionKey[1024];
    }

    @Override
    public boolean add(SelectionKey o) {
        if (o == null) {
            return false;
        }

        if (size == keys.length) {
            increaseCapacity();
        }

        keys[size++] = o;
        return true;
    }

    @Override
    public boolean remove(Object o) {
        return false;
    }

    @Override
    public boolean contains(Object o) {
        SelectionKey[] array = keys;
        for (int i = 0, s = size; i < s; i++) {
            SelectionKey k = array[i];
            if (k.equals(o)) {
                return true;
            }
        }
        return false;
    }

    @Override
    public int size() {
        return size;
    }

    @Override
    public Iterator<SelectionKey> iterator() {
        return new Iterator<SelectionKey>() {
            private int idx;

            @Override
            public boolean hasNext() {
                return idx < size;
            }

            @Override
            public SelectionKey next() {
                if (!hasNext()) {
                    throw new NoSuchElementException();
                }
                return keys[idx++];
            }

            @Override
            public void remove() {
                throw new UnsupportedOperationException();
            }
        };
    }

    void reset() {
        reset(0);
    }

    void reset(int start) {
        Arrays.fill(keys, start, size, null);
        size = 0;
    }

    private void increaseCapacity() {
        SelectionKey[] newKeys = new SelectionKey[keys.length << 1];

Frequently Asked Questions

What is the SelectedSelectionKeySet class?
SelectedSelectionKeySet is a class in the netty codebase, defined in transport/src/main/java/io/netty/channel/nio/SelectedSelectionKeySet.java.
Where is SelectedSelectionKeySet defined?
SelectedSelectionKeySet is defined in transport/src/main/java/io/netty/channel/nio/SelectedSelectionKeySet.java at line 25.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free