aboutsummaryrefslogtreecommitdiff
path: root/java/CurlGlue.java
blob: fe8f186e69fd08976048c385918f5741e337c97e (plain)
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
/**
 * The curl class is a JNI wrapper for libcurl. Please bear with me, I'm no
 * true java dude (yet). Improve what you think is bad and send me the
 * updates!
 * daniel@haxx.se
 *
 * This is meant as a raw, crude and low-level interface to libcurl. If you
 * want fancy stuff, build upon this.
 */

public class CurlGlue
{
  // start of imported generated list, make a new list with
  // define2java.pl on demand
  public static final int CURLOPT_NOTHING  = 0;
  public static final int CURLOPT_FILE  = 10001;
  public static final int CURLOPT_URL  = 10002;
  public static final int CURLOPT_PORT  = 3;
  public static final int CURLOPT_PROXY  = 10004;
  public static final int CURLOPT_USERPWD  = 10005;
  public static final int CURLOPT_PROXYUSERPWD  = 10006;
  public static final int CURLOPT_RANGE  = 10007;
  public static final int CURLOPT_INFILE  = 10009;
  public static final int CURLOPT_ERRORBUFFER  = 10010;
  public static final int CURLOPT_WRITEFUNCTION  = 20011;
  public static final int CURLOPT_READFUNCTION  = 20012;
  public static final int CURLOPT_TIMEOUT  = 13;
  public static final int CURLOPT_INFILESIZE  = 14;
  public static final int CURLOPT_POSTFIELDS  = 10015;
  public static final int CURLOPT_REFERER  = 10016;
  public static final int CURLOPT_FTPPORT  = 10017;
  public static final int CURLOPT_USERAGENT  = 10018;
  public static final int CURLOPT_LOW_SPEED_LIMIT  = 19;
  public static final int CURLOPT_LOW_SPEED_TIME  = 20;
  public static final int CURLOPT_RESUME_FROM  = 21;
  public static final int CURLOPT_COOKIE  = 10022;
  public static final int CURLOPT_HTTPHEADER  = 10023;
  public static final int CURLOPT_HTTPPOST  = 10024;
  public static final int CURLOPT_SSLCERT  = 10025;
  public static final int CURLOPT_SSLCERTPASSWD  = 10026;
  public static final int CURLOPT_CRLF  = 27;
  public static final int CURLOPT_QUOTE  = 10028;
  public static final int CURLOPT_WRITEHEADER  = 10029;
  public static final int CURLOPT_COOKIEFILE  = 10031;
  public static final int CURLOPT_SSLVERSION  = 32;
  public static final int CURLOPT_TIMECONDITION  = 33;
  public static final int CURLOPT_TIMEVALUE  = 34;
  public static final int CURLOPT_HTTPREQUEST  = 10035;
  public static final int CURLOPT_CUSTOMREQUEST  = 10036;
  public static final int CURLOPT_STDERR  = 10037;
  public static final int CURLOPT_POSTQUOTE  = 10039;
  public static final int CURLOPT_WRITEINFO  = 10040;
  public static final int CURLOPT_VERBOSE  = 41;
  public static final int CURLOPT_HEADER  = 42;
  public static final int CURLOPT_NOPROGRESS  = 43;
  public static final int CURLOPT_NOBODY  = 44;
  public static final int CURLOPT_FAILONERROR  = 45;
  public static final int CURLOPT_UPLOAD  = 46;
  public static final int CURLOPT_POST  = 47;
  public static final int CURLOPT_FTPLISTONLY  = 48;
  public static final int CURLOPT_FTPAPPEND  = 50;
  public static final int CURLOPT_NETRC  = 51;
  public static final int CURLOPT_FOLLOWLOCATION  = 52;
  public static final int CURLOPT_FTPASCII  = 53;
  public static final int CURLOPT_TRANSFERTEXT  = 53;
  public static final int CURLOPT_PUT  = 54;
  public static final int CURLOPT_MUTE  = 55;
  public static final int CURLOPT_PROGRESSFUNCTION  = 20056;
  public static final int CURLOPT_PROGRESSDATA  = 10057;
  public static final int CURLOPT_AUTOREFERER  = 58;
  public static final int CURLOPT_PROXYPORT  = 59;
  public static final int CURLOPT_POSTFIELDSIZE  = 60;
  public static final int CURLOPT_HTTPPROXYTUNNEL  = 61;
  public static final int CURLOPT_INTERFACE  = 10062;
  public static final int CURLOPT_KRB4LEVEL  = 10063;
  public static final int CURLOPT_SSL_VERIFYPEER  = 64;
  public static final int CURLOPT_CAINFO  = 10065;
  public static final int CURLOPT_PASSWDFUNCTION  = 20066;
  public static final int CURLOPT_PASSWDDATA  = 10067;
  public static final int CURLOPT_MAXREDIRS  = 68;
  public static final int CURLOPT_FILETIME  = 10069;
  public static final int CURLOPT_TELNETOPTIONS  = 10070;
  public static final int CURLOPT_MAXCONNECTS  = 71;
  public static final int CURLOPT_CLOSEPOLICY  = 72;
  public static final int CURLOPT_CLOSEFUNCTION  = 20073;
  public static final int CURLOPT_FRESH_CONNECT  = 74;
  public static final int CURLOPT_FORBID_REUSE  = 75;
  public static final int CURLOPT_RANDOM_FILE  = 10076;
  public static final int CURLOPT_EGDSOCKET  = 10077;
  public static final int CURLOPT_CONNECTTIMEOUT  = 78;
  public static final int CURLOPT_HEADERFUNCTION  = 20079;
  // end of generated list

  public CurlGlue() {
    javacurl_handle = jni_init();
  }

  public void finalize() {
    jni_cleanup(javacurl_handle);
  }

  private int javacurl_handle;

  /* constructor and destructor for the libcurl handle */
  private native int jni_init();
  private native void jni_cleanup(int javacurl_handle);
  private native synchronized int jni_perform(int javacurl_handle);
  
    // Instead of varargs, we have different functions for each
  // kind of type setopt() can take
  private native int jni_setopt(int libcurl, int option, String value);
  private native int jni_setopt(int libcurl, int option, int value);
  private native int jni_setopt(int libcurl, int option, CurlWrite value);

  public native int getinfo();
  
  public int perform() {
    return jni_perform(javacurl_handle);
  }
  public int setopt(int option, int value) {
    return jni_setopt(javacurl_handle, option, value);
  }
  public int setopt(int option, String value) {
    return jni_setopt(javacurl_handle, option, value);
  }
  public int setopt(int option, CurlWrite value) {
    return jni_setopt(javacurl_handle, option, value);
  }

  static {
    System.loadLibrary("javacurl");
  }
  
}