xref: /unit/src/java/nginx/unit/HeadersEnumeration.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 
6*977Smax.romanov@gmail.com public class HeadersEnumeration implements Enumeration<String> {
7*977Smax.romanov@gmail.com 
8*977Smax.romanov@gmail.com     private long headers_ptr;
9*977Smax.romanov@gmail.com     private long size;
10*977Smax.romanov@gmail.com     private long initial_pos;
11*977Smax.romanov@gmail.com     private long pos;
12*977Smax.romanov@gmail.com 
HeadersEnumeration(long _headers_ptr, long _size, long _initial_pos)13*977Smax.romanov@gmail.com     public HeadersEnumeration(long _headers_ptr, long _size, long _initial_pos) {
14*977Smax.romanov@gmail.com         headers_ptr = _headers_ptr;
15*977Smax.romanov@gmail.com         size = _size;
16*977Smax.romanov@gmail.com         initial_pos = _initial_pos;
17*977Smax.romanov@gmail.com         pos = _initial_pos;
18*977Smax.romanov@gmail.com     }
19*977Smax.romanov@gmail.com 
20*977Smax.romanov@gmail.com     @Override
hasMoreElements()21*977Smax.romanov@gmail.com     public boolean hasMoreElements()
22*977Smax.romanov@gmail.com     {
23*977Smax.romanov@gmail.com         if (pos >= size) {
24*977Smax.romanov@gmail.com             return false;
25*977Smax.romanov@gmail.com         }
26*977Smax.romanov@gmail.com 
27*977Smax.romanov@gmail.com         pos = nextElementPos(headers_ptr, size, initial_pos, pos);
28*977Smax.romanov@gmail.com         return pos < size;
29*977Smax.romanov@gmail.com     }
30*977Smax.romanov@gmail.com 
nextElementPos(long headers_ptr, long size, long initial_pos, long pos)31*977Smax.romanov@gmail.com     static private native long nextElementPos(long headers_ptr, long size, long initial_pos, long pos);
32*977Smax.romanov@gmail.com 
33*977Smax.romanov@gmail.com     @Override
nextElement()34*977Smax.romanov@gmail.com     public String nextElement()
35*977Smax.romanov@gmail.com     {
36*977Smax.romanov@gmail.com         return nextElement(headers_ptr, size, initial_pos, pos++);
37*977Smax.romanov@gmail.com     }
38*977Smax.romanov@gmail.com 
nextElement(long headers_ptr, long size, long initial_pos, long pos)39*977Smax.romanov@gmail.com     static private native String nextElement(long headers_ptr, long size, long initial_pos, long pos);
40*977Smax.romanov@gmail.com }
41