summaryrefslogtreecommitdiffhomepage
path: root/src/java/nginx/unit/HeaderNamesEnumeration.java
blob: d81b877882ed828741d9979cd6861babff8e8c94 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package nginx.unit;

import java.lang.String;
import java.util.Enumeration;
import java.util.NoSuchElementException;

public class HeaderNamesEnumeration implements Enumeration<String> {

    private long headers_ptr;
    private long size;
    private long pos = 0;

    public HeaderNamesEnumeration(long _headers_ptr, long _size) {
        headers_ptr = _headers_ptr;
        size = _size;
    }

    @Override
    public boolean hasMoreElements()
    {
        if (pos >= size) {
            return false;
        }

        pos = nextElementPos(headers_ptr, size, pos);
        return pos < size;
    }

    static private native long nextElementPos(long headers_ptr, long size, long pos);

    @Override
    public String nextElement()
    {
        if (pos >= size) {
            throw new NoSuchElementException();
        }

        return nextElement(headers_ptr, size, pos++);
    }

    static private native String nextElement(long headers_ptr, long size, long pos);
}