xref: /unit/src/java/nginx/unit/HeaderNamesEnumeration.java (revision 977:4f9268f27b57)
1*977Smax.romanov@gmail.com package nginx.unit;
2*977Smax.romanov@gmail.com 
3*977Smax.romanov@gmail.com import java.lang.String;
4*977Smax.romanov@gmail.com import java.util.Enumeration;
5*977Smax.romanov@gmail.com import java.util.NoSuchElementException;
6*977Smax.romanov@gmail.com 
7*977Smax.romanov@gmail.com public class HeaderNamesEnumeration implements Enumeration<String> {
8*977Smax.romanov@gmail.com 
9*977Smax.romanov@gmail.com     private long headers_ptr;
10*977Smax.romanov@gmail.com     private long size;
11*977Smax.romanov@gmail.com     private long pos = 0;
12*977Smax.romanov@gmail.com 
HeaderNamesEnumeration(long _headers_ptr, long _size)13*977Smax.romanov@gmail.com     public HeaderNamesEnumeration(long _headers_ptr, long _size) {
14*977Smax.romanov@gmail.com         headers_ptr = _headers_ptr;
15*977Smax.romanov@gmail.com         size = _size;
16*977Smax.romanov@gmail.com     }
17*977Smax.romanov@gmail.com 
18*977Smax.romanov@gmail.com     @Override
hasMoreElements()19*977Smax.romanov@gmail.com     public boolean hasMoreElements()
20*977Smax.romanov@gmail.com     {
21*977Smax.romanov@gmail.com         if (pos >= size) {
22*977Smax.romanov@gmail.com             return false;
23*977Smax.romanov@gmail.com         }
24*977Smax.romanov@gmail.com 
25*977Smax.romanov@gmail.com         pos = nextElementPos(headers_ptr, size, pos);
26*977Smax.romanov@gmail.com         return pos < size;
27*977Smax.romanov@gmail.com     }
28*977Smax.romanov@gmail.com 
nextElementPos(long headers_ptr, long size, long pos)29*977Smax.romanov@gmail.com     static private native long nextElementPos(long headers_ptr, long size, long pos);
30*977Smax.romanov@gmail.com 
31*977Smax.romanov@gmail.com     @Override
nextElement()32*977Smax.romanov@gmail.com     public String nextElement()
33*977Smax.romanov@gmail.com     {
34*977Smax.romanov@gmail.com         if (pos >= size) {
35*977Smax.romanov@gmail.com             throw new NoSuchElementException();
36*977Smax.romanov@gmail.com         }
37*977Smax.romanov@gmail.com 
38*977Smax.romanov@gmail.com         return nextElement(headers_ptr, size, pos++);
39*977Smax.romanov@gmail.com     }
40*977Smax.romanov@gmail.com 
nextElement(long headers_ptr, long size, long pos)41*977Smax.romanov@gmail.com     static private native String nextElement(long headers_ptr, long size, long pos);
42*977Smax.romanov@gmail.com }
43